我在Android中使用WebView。我使用loadDataWithBaseURL加载以下网址:
(出于安全原因,我使用“XXXX”替换我的实际网页网址)
wb.loadDataWithBaseURL(“http://XXXX.html”,formattedHTML,“text / html”,“UTF-8”,null);
formattedHTML的内容包含由我的服务类填充的实际html源代码。
http://XXXX.html的完整源代码如下:
<html>
<head>
<script language="javascript">
function displayAlert()
{
alert("this is in function displayAlert()");
}
</script>
</head>
<body onload="displayAlert();">dummy
</body>
</html>
我有一个按钮。单击它时,我想执行javascript函数“displayAlert”:wb.loadUrl(“javascript:displayAlert()”);
我的问题:
我搜索了很多网页,其中大多数人说这是由javascript中的“{”和“}”不匹配引起的。但我检查了我的,发现我的javascript代码格式正确,如上所示。
我已经通过以下方式在网络视图中启用了javascript:
WebSettings webSettings = wb.getSettings();
webSettings.setJavaScriptEnabled(true);
为什么无法找到“http://XXXX.html”中实现的javascript函数执行?
请你帮助我吗?非常感谢!
答案 0 :(得分:5)
使用此
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:(function() { " +
"alert('hello') " +
"})()");
}
});
答案 1 :(得分:1)
您的问题与type
属性的编写方式有关,text/javascript
而非javascript/text
非常重要(type
的排序必须绝对正确)
<script type="text/javascript">
function displayAlert()
{
alert("this is in function displayAlert()");
}
</script>