Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在android webview中为本地文件创建脚本标记时出现问题_Javascript_Android_Jquery_Html_Ajax - Fatal编程技术网

Javascript 在android webview中为本地文件创建脚本标记时出现问题

Javascript 在android webview中为本地文件创建脚本标记时出现问题,javascript,android,jquery,html,ajax,Javascript,Android,Jquery,Html,Ajax,我有一个Android应用程序,它包含在一个简单的WebView中,在项目的assets文件夹中加载一个本地html文件 HTML有一个标记,用于调用(AJAX)外部服务,并期望得到一个表示.js文件名的字符串作为响应(比如,'test.js') 在test.js中有一个简单的函数声明,如下所示: var testFunction = function(){ // some code here } AJAX回调然后通过javascript构造一个指向.js文件的标记,并将其附加到文档的

我有一个Android应用程序,它包含在一个简单的WebView中,在项目的assets文件夹中加载一个本地html文件

HTML有一个标记,用于调用(AJAX)外部服务,并期望得到一个表示.js文件名的字符串作为响应(比如,'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();
}); 
重要提示:script标记指向外部.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文件呢

谢谢:)

编辑:我尝试了在该线程中找到的解决方案:


成功了

我尝试了在该线程中找到的解决方案:

成功了

我报告解决方案:

var scriptUrl = "test.js";
var head = document.getElementsByTagName("head")[0];
script = document.createElement('script');
script.type = 'text/javascript';
script.src = scriptUrl;
script.onload = function() { alert("Success"); };
script.onerror = function(e) { alert("failed: " + JSON.stringify(e)); };
head.appendChild(script);

因此,如果我使用jquery append()方法,它将不起作用,但是如果我使用javascript appendChild方法,它将起作用……

var script=//构造脚本标记您可以发布此相关代码吗?如何构造脚本标记?顺便说一句,为什么不使用getScript()jquery的方法或设置ajax请求的
数据类型:“script”
!以下是相关代码:
var脚本=$(“”)var script=$(''+'')未成功:/+1表示onload,onerror语法。。很难找到javascript方法的帮助。。该死的eclipse在开发期间也没有自动完成方法。。就像30年前在fotran开发一样。。