2017-04-06 13 views
0

私はjQueryをテストする小さなチェックを書こうとしていますが、存在しない場合はスクリプトを動的にロードしてスクリプトを実行します。 $を使用するものが他に存在する場合には、矛盾を起こさないようにしてから、小さなメニューのスクリプトを実行します。動的にロードされた後、jQueryに正しくアクセスできませんか?

しかし、実際にテストすると、このjQueryはスクリプトからロードされますが、実行に失敗します。「jQueryが定義されていません」

jQueryはそれを使用する関数よりも先に来なければなりませんが、動的にインストールされているときにこれを修正する方法はありますか?

(function() { 
    console.log("Loaded"); 
    if(!window.jQuery) { 
     var script = document.createElement('script'); 
     script.type = "text/javascript"; 
     script.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"; 
     document.getElementsByTagName('head')[0].appendChild(script); 
     jQuery.noConflict(); 
    } 
})(); 
+0

メニューでjQueryを使用している場合は、上記のIFにメニューコードを追加してみませんか?あまりにも多くのコードですか?ここでの問題は、jQueryがロードされる前にjQueryを必要とするコードを実行することです。 –

答えて

1

スクリプトが読み込まれるまで待っているわけではありません。

script.onload = function(){ 
    // do whatever 
}; 
+0

それはそれでした。私はそれがonLoadの問題だと認識しましたが、それをドキュメントに入れようとしていました。ありがとうございました! – Merlin

関連する問題