使用 {code: 'some code'}
param 的 InAppBrowser js 脚本注入(inject)工作完美,但与 {file: 'local file url'}
param 不兼容。
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.executeSript({file: "myscript.js"});
});
如何使用文件参数注入(inject)脚本来注入(inject)我的本地 js 脚本?
- 它需要绝对文件路径还是相对路径?
- 文件必须托管在子网站上吗?
这似乎是一件神秘而复杂的事情,因为我有几行脚本并且无法使用 ref.executeSript({codedetails, callback: "myscript.js"});
最佳答案
我遇到了同样的问题。使用cordova3.1.0。
ref.executeScript(
{
file: "http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"
//webURL works fine with 'file'
}, function()
{
$.get("js/myscript.js", function(data)
{ //workaround to obtain code using jQuery.get
ref.executeScript(
{
code: data
}, function()
{
console.log('ref.executeScript done');
});
});
});
当我将文件 URL 设置为 webURL http://.... 时,
成功了,就是想不通怎么指向本地的js文件,
所以我使用 $.get "js/myscript.js"获取代码字符串。
示例代码说明:jQuery已经安装在phonegap App上,也在目标inAppBrowser app上尝试使用jQuery。以防万一。
关于ios - InAppBrowser 注入(inject)脚本(使用 executeScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18634349/