gpt4 book ai didi

javascript - Uncaught ReferenceError 函数未定义javascript android

转载 作者:行者123 更新时间:2023-11-28 09:41:34 25 4
gpt4 key购买 nike

我尝试将 html 页面加载到自定义 webView我还需要加载 4 个 javascript 文件到 webView,当我直接将 javascript 引用放在 html 的 head 标签中时,它们运行良好,但是当我在运行时从我的 android 函数加载它们时,它们加载正确,但不起作用并捕获“ Uncaught ReferenceError 函数未定义”异常。

这是我在两种状态下所做的事情:

状态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 的更简单、更优雅的方法是 yepnope ,一个 1.7 KB 的小型库。

yepnope({
load: [
"file:///android_asset/selection/android.selection.js",
"file:///android_asset/selection/jquery.js",
"file:///android_asset/selection/rangy-core.js",
"file:///android_asset/selection/rangy-serializer.js"
],
complete: function () {
alert('loaded successfully');
}
});

您将拥有更少的代码,因此连接字符串中的错误可能会更少。

可用的回调可能有助于查找错误或添加有用的功能。

关于javascript - Uncaught ReferenceError 函数未定义javascript android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12281665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com