我有一个Android应用程序,它包含一个简单的WebView,可以在项目的assets文件夹中加载本地html文件 .
HTML有一个标记,它调用(AJAX)一个外部服务,并期望一个表示.js文件名的String(比如'test.js')作为响应 .
在test.js中有一个简单的函数声明,如:
var testFunction = function(){
// some code here
}
然后,AJAX回调通过javascript构建一个标记,该标记指向.js文件并将其附加到文档的头部;然后调用testFunction:
$.ajax('externalService').done(function(response){
var script = // construct the script tag;
$('head').append(script);
testFunction();
});
重要提示:脚本标记指向外部.js文件,如
<script src="http://justatest.com/test.js">
......一切正常!
现在我尝试将test.js放在项目的assets文件夹中 . 显然,我用相对路径更改了回调中创建的脚本的src:
<script src="test.js"></script>
但是当我尝试调用函数testFunction时,我得到一个错误(未定义testFunction) .
本地路径是正确的(我将jquery.js放在test.js的同一本地文件夹中,并将其直接加载到带有无错误的html中) .
我把所有的属性(比如type =“text / javascript”)都放在了标签中......
那么,为什么webview不以这种方式加载本地.js文件?
谢谢 :)
EDIT: 我尝试了在这个帖子中找到的解决方案:
jQuery getScript not working in Android WebView when using Local Assets/HTML/Resources
它工作!!!!
1 回答
我尝试了在这个帖子中找到的解决方案:
jQuery getScript not working in Android WebView when using Local Assets/HTML/Resources
它工作了!
我报告解决方案:
因此,如果我使用jquery append()方法它不起作用,但如果我使用javascript appendChild方法它工作...