7

paramを使用した InAppBrowser js スクリプト インジェクション{code: 'some code'}は完全に機能しますが、{file: 'local file url'}param では機能しません。

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

file パラメータを使用してスクリプトを挿入し、ローカルの js スクリプトを挿入するにはどうすればよいですか?

  • 絶対ファイルパスまたは相対パスが必要ですか?
  • ファイルは子 Web サイトでホストする必要がありますか?

数行のスクリプトがあり、すべてを埋め込むことができないため、不思議で複雑なことのように思えますref.executeSript({codedetails, callback: "myscript.js"});

4

1 に答える 1

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');
            });
        });
    });

ファイルの URL を webURL http://.... として設定すると、

うまくいきましたが、ローカルのjsファイルを指す方法がわかりませんでした.

$.get "js/myscript.js" を使用してコード文字列を取得します。

サンプル コードは次のことを示しています。jQuery は既に phonegap アプリにインストールされており、ターゲットの inAppBrowser アプリでも jQuery を使用しようとしています。念のため。

于 2013-10-17T06:03:02.013 に答える