我尝试将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:从webview客户端的android应用程序加载,,,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 标记正确附加了脚本字符串。
我该如何解决这个问题,谢谢......