InAppBrowser注入脚本(使用executeScript)

Ade*_*rge 7 ios cordova inappbrowser

使用{code: 'some code'}param的InAppBrowser js脚本注入工作正常但不适用于{file: 'local file url'}param.

var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
    ref.executeSript({file: "myscript.js"});
});
Run Code Online (Sandbox Code Playgroud)

如何使用文件参数注入脚本来注入我的本地js脚本?

  • 它需要绝对文件路径还是相对的?
  • 必须在子网站上托管文件吗?

这似乎是一个神秘复杂的事情,因为我有几行脚本,无法嵌入所有使用 ref.executeSript({codedetails, callback: "myscript.js"});

小智 5

我有同样的问题.使用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');
            });
        });
    });
Run Code Online (Sandbox Code Playgroud)

当我将文件URL设置为webURL http:// ....时,

它工作,但我无法弄清楚如何指向本地js文件,

所以我使用$ .get"js/myscript.js"获取代码字符串.

示例代码说明:jQuery已经安装在phonegap App上,并且还尝试在目标inAppBrowser应用程序中使用jQuery.以防万一.

  • 我在PhoneGap应用程序的开头添加了一行代码.(假设起始页面是index.html)<br /> <br />`window.basePath = window.location.href.replace('index.html','');`<br /> <br />然后,当我需要引用`basePath +'js/handlebars/foo.js'`来加载脚本并从手机的文件系统中提取图像. (2认同)