2017-07-04 29 views
1

私はPhoneGap/Cordovaを使用して構築されたクロスプラットフォームアプリを持っています。外部JavaScriptファイルを読み込む

コントローラが読み込まれたときに外部JavaScriptファイルを実行する関数を実装しようとしています。私はHEREの解決策に従っています。同様にHERE。しかし、私はJavaScriptがwindow.openイベントなしで実行されることを願っています。つまり、準備が整うとすぐにexecuteScriptを実行します。私ものvar refの最初に定義することなくexecuteScript()を呼び出すにはどうすればよい

var navigation = angular.module("navigation", []); 
navigation.controller("Navigation", function ($scope) { 

    var init = function() { 
     document.addEventListener("deviceready", onDeviceReady, false); 
    }; 

    init(); 

    function onDeviceReady() { 
     // LOAD EXTERNAL SCRIPT 
     var ref = window.open('http://www.haruair.com/', '_blank', 'location=yes, toolbar=yes, EnableViewPortScale=yes'); 
     ref.addEventListener("loadstop", function() { 
      ref.executeScript(
       { file: 'http://haruair.com/externaljavascriptfile.js' }, 
       function() { 
        ref.executeScript(
        { code: 'getSomething()' }, 
        function (values) { 
         var data = values[0]; 
         alert("Name: " + data.name + "\nAge: " + data.age); 
        }); 
       } 
      ); 
     }); 
}); 

答えて

1

あなたはindex.htmlファイルにスクリプトを追加して、JSからやりたいしようとすることができます。また、このエンドポイントをホワイトリストに追加する必要があります。

<!-- index.html --> 

<script> 
    function onCustomLoad() { 
    //do stuff 
    } 
</script> 
<script src="your-custom-script" onload="onCustomLoad"></script> 
+0

イップを終えた後、関数を呼び出す

var script = document.createElement("script"); script.type = "text/javascript"; script.id = "some_id"; script.src = 'http://haruair.com/externaljavascriptfile.js'; document.head.appendChild(script); 

を使用することができます。両方に追加されましたが、実際にonDeviceReady関数から自動的にメソッドを呼び出す方法はありますか?私は構文についてはわかりません。 – heyred

+0

スクリプトに 'onload'リスナーを追加して、いつロードが行われているかをチェックし、コードワーバーの準備ができたらチェックすることができます(イベント' cordovaReady'または類似のものを起動します) – dloeda

関連する問題