ios - InAppBrowser 注入(inject)脚本(使用 executeScript)

标签 ios cordova inappbrowser

使用 {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/

相关文章:

ios - 使用相同的 SSL 证书可以连接到 APNS 的服务器的最大数量是否有限制?

android - Cordova - Android - 为什么 WebSQL 和本地存储数据被 Android 操作系统删除?

ios - 使用 InAppbrowser 打开本地 html

javascript - InAppBrowser 应使用后台线程警告

ios - 创建 CLLocationManager 时分配 CLLocationManager 委托(delegate)

ios - swift 中 UIAlertView 错误

cordova - 我收到错误 - 错误 : cannot find module 'cordova-common' when installing Cordova

android - 无法在 visual studio 的 apache cordova 中更改已安装的 android 平台

javascript - 以编程方式清除 Phonegap 的 InAppBrowser 缓存

android - OpenGL es 2.0 glDrawElements索引指针错误