Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
Uncaught ReferenceError: function is not defined when trying to access in Android webview
我在Android中使用WebView。我正在使用loadDataWithBaseURL加载以下url:
(出于安全原因,我在这里使用"XXXX"代替我的实际网页URL)
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()");
我的问题:
- 我在logCat视图中遇到以下错误消息:未捕获的语法错误:处的意外标识符http://XXXX.html:1.
我搜索了很多网页,其中大多数都说这是由于javascript中的"{"answers"}"不匹配造成的。但我检查了我的javascript代码,发现它的格式是正确的,正如您在上面看到的那样。
- 当我点击按钮时,javascript无法执行。错误消息:E/Web控制台(534):未捕获引用错误:displayAlert未在null处定义:1
我已经通过:在webview中启用了javascript
WebSettings webSettings = wb.getSettings();
webSettings.setJavaScriptEnabled(true);
为什么javascript函数在"http://XXXX.html"无法定位执行?
你能帮帮我吗?非常感谢!
使用此
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:(function() { " +
"alert('hello') " +
"})()");
}
});
您的问题在于type
属性的编写方式,拥有text/javascript
而不是javascript/text
非常重要(type
的排序必须绝对正确)
<script type="text/javascript">
function displayAlert()
{
alert("this is in function displayAlert()");
}
</script>
相关文章:
- 如何访问Web2py'中python代码中的JavaScript变量;s视图
- UI5:如何访问视图中定义的html元素
- 访问url[材质Ui+选项卡]时,Angular Ui路由器未加载视图
- Uncaught ReferenceError:尝试在Android网络视图中访问时未定义函数
- 访问所选剑道树视图节点的子节点
- EmberJS:从集合视图访问项视图
- Cakephp:从视图访问数据库表
- 从主干视图访问 Rails 会话变量
- 从 JavaScript 中的表单视图访问复选框 asp.net
- 从视图访问控制器值的 Grails
- 从视图访问实例变量
- 通过 JavaScript 从视图访问 Post 方法
- 从MVC视图访问DLL中的SaveMethod
- 限制视图访问
- Extjs从一个视图访问另一个视图
- 在如何从子视图访问父变量中使用容器视图
- ExtJs通过视图访问控制器
- 可以't使用MongoDB NodeJS Express从视图访问数据库
- Codeigniter:如何从不同的视图访问css文件
- 从ng视图访问$scope时遇到问题