【发布时间】:2012-09-05 12:40:37
【问题描述】:
我尝试将 html 页面加载到自定义 webView 我还需要将 4 个 javascript 文件加载到 webView, 当我将 javascript 引用直接放在 html 的 head 标记中时,它们运行良好, 但是当我在运行时从我的 android 函数加载它们时,它们正确加载,但不能工作并捕获“未定义未捕获的引用错误函数”异常。
这是我在两种状态下所做的:
状态1:直接加载引用:
这很好用.....
<html>
<head>
<head>
<script type="text/javascript" src="file:///android_asset/selection/android.selection.js"></script>
<script type="text/javascript" src="file:///android_asset/selection/jquery.js"></script>
<script type="text/javascript" src="file:///android_asset/selection/rangy-core.js"></script>
<script type="text/javascript" src="file:///android_asset/selection/rangy-serializer.js"></script>
</head>
<body>
......
</body>
</html>
状态 2:从 android 应用程序加载 在 webview 客户端,,, onPageFinished 方法中我输入了这段代码:
String str = "javascript: (function() { "
+ " var rangycore=document.createElement('script');"
+ " rangycore.type='text/javascript';"
+ " rangycore.src='file:///android_asset/selection/rangy-core.js';"
+"document.getElementsByTagName('head').item(0).appendChild(rangycore);"
+ " var rangyserializer=document.createElement('script');"
+ " rangyserializer.type='text/javascript';"
+ " rangyserializer.src='file:///android_asset/selection/rangy-serializer.js';"
+ " document.getElementsByTagName('head').item(0).appendChild(rangyserializer);"
+ " var select=document.createElement('script');"
+ " select.type='text/javascript';"
+ " select.src='file:///android_asset/selection/android.selection.js';"
+ " document.getElementsByTagName('head').item(0).appendChild(select);"
+ " var jquery=document.createElement('script');"
+ " jquery.type='text/javascript';"
+ " jquery.src='file:///android_asset/selection/jquery.js';"
+ " document.getElementsByTagName('head').item(0).appendChild(jquery);})()";
BTWebView.this.loadUrl(str);
此打印控制台消息“未捕获的引用错误:未定义范围” 虽然 head 标签正确地附加了脚本字符串。
我该如何解决这个问题 谢谢你....
【问题讨论】:
标签: javascript android