Android WebView가 있습니다. 나는 그것을 (String으로) 전달한다. 이 HTML에는 기본 자바 스크립트가 포함되어 있습니다.Android 사용자 정의 WebView가로드 된 HTML에 정의 된 javascript 함수를 찾지 못했습니다.
로드시 HTML은 자바 스크립트 함수 (<head></head>
에 정의 됨)를 호출하려고 시도합니다. 이 브라우저 바탕 화면에서 잘 작동하므로 HTML/Javascript 자체는 괜찮지 만 동일한 HTML을 WebView에로드하면 작동하지 않습니다.
WebView view = new WebView(context);
WebSettings settings = view.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(false);
view.setWebChromeClient(new CustomWebChromeClient());
view.setWebViewClient(new CustomWebViewClient());
view.loadData(ARBITRARY_HTML, "text/html", "utf-8");
로드 된 HTML은 다음과 같습니다 : catch되지 않은 ReferenceError가가 ": ShowContent가 아닌 자바 스크립트 오류이 (안드로이드 전용) 런타임을 생산
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My head hurts from head-desking</title>
<style type="text/css">
#content
{
display: none;
}
</style>
<script type="text/javascript">
//<!--
function ShowContent()
{
document.getElementById('content').style.display = 'block';
}
//-->
</script>
</head>
<body onload="ShowContent()">
<div id="content">
This content should be shown, but isn't!
</div>
<div id="other">
All I see is this content... and that makes me question my self worth.
</div>
</body>
</html>
여기
내가 웹보기를 인스턴스화하는 방법입니다 한정된".
이것은 정말 내 머리 속에 들어 있습니다.이 코드 중 많은 부분이 버그를 찾으려고했기 때문에 "눈이 피었습니다."라는 문제 중 하나입니다. 나는 단순한 것을 보지 않고 있다고 확신한다. 일부 사람들은 jQuery를 사용하라고 제안했지만 실행하려고 시도한 자바 스크립트는 매우 단순합니다. 문제를 해결하기 위해 추가로 100kb를 포함시키는 것 같아요. 문제. – agenttom
** 업데이트 ** 나는 테스트를 수행하여 두 개의 버튼을 만들었습니다. '. 두 번째 단추를 눌러 자바 스크립트를 직접 실행하면 잘 작동하지만 함수를 호출 할 수 없습니다. 나는 잡았다가 여기에있는 것을 정말로 이해할 수 없다. – agenttom
다음과 같은 입력 필드가 있습니다. 위의 코드에서 잘 작동합니다. 이 문제를 해결하는 방법. 입력 필드 (찾아보기 버튼)를 숨기고 싶습니다. –