2012-04-19 13 views
0

jQueryがページに存在するかどうかを確認する必要があり、そうでない場合はロードする必要があります。スクリプトタグを作成し、外部のjQueryライブラリを参照します。スクリプトの残りの部分を続行する前に、ライブラリにページが読み込まれるのを待つ方法はありますか?ページが最初にロードされた後にjQueryライブラリをロードする

UPDATE:

相続人は、それは祇園の提案の後のように見えるもの:

if (typeof jQuery === 'undefined') { 
    var j = document.createElement('SCRIPT'); 
    j.type = 'text/javascript'; 
    j.src = '//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'; 
    document.getElementsByTagName('head')[0].appendChild(j); 
    j.onload = function() { 
     var section = document.createElement('DIV'); 
     section.setAttribute('style', 'height:300px; width:250px; position: fixed; right: 0px; top: 100px;z-index: 9999; border-style:solid;border-width:1px;'); 
     section.innerHTML = '<p>steps</p><textarea name="steps"></textarea><p>expected results</p><textarea name="results"></textarea><p><input type="button" name="submit" value="add test case" /></p>'; 

     document.getElementsByTagName('body')[0].appendChild(section); 
    }; 
} 

答えて

6
<script type="text/javascript"> 
    if(typeof jQuery === 'undefined') 
     document.write('<sc'+'ript type="text/javascript" src="jquery.js"></scrip'++'t>'); 
    window.onload = function(){ 
     // jquery should be present here 
    }); 
</script> 
+1

なぜ ''

+0

文字列 ''

1

に設定することがこのようにロードされています

window.onload = function(){ 
    if(typeof jQuery == "undefined"){ 
      // jquery is not available 
    } 
} 

とjQueryは私が必要な場合にのみ、jQueryのファイルをinlcudeするrequirejs http://requirejs.org/

0

のようなジャバスクリプトローダを使用することをお勧めしますロードされていない場合、あなたはそれを最初

function afterLoad(){ 
    if(typeof(jQuery)!=='undefined') 
    return; 

    var element1 = document.createElement(“script”); 
    element1.src = “pointToYourjQueryFile.js”; 
    element1.type=”text/javascript”; 
    document.getElementsByTagName(“head”)[0].appendChild(element1); 
} 
をチェックする必要があります

この方法でウィンドウロードでこの関数を呼び出します。

<body onload="afterLoad()"?> 
0
window.onload = function(){ 
    var script,head; 
    if(!jQuery){ 
     script = document.createElement('script'); 
     document.getElementsByTagName('head')[0].appendChild(script); 
     script.onload = function(){ 
      alert('jQuery loaded'); 
     } 
     script.src = 'path_to_jquery'; 
    } 
} 
0

Modernizrは、この行使用しています。

<script>window.jQuery || document.write('<script src="./js/libs/jquery-1.6.2.min.js"><\/script>')</script> 

をしかしdocument.writeをは安全ではないとみなされています。そのため、私が投稿されたもので、それを接続したい:

if(!window.jQuery) 
{ 
    var element1 = document.createElement(“script”); 
    element1.src = “somefile.js”; 
    element1.type=”text/javascript”; 
    document.getElementsByTagName(“head”)[0].appendChild(element1); 
} 

一方Googleは使用しています。すでにWebサイト上の既存の最初のタグにスクリプトを追加し

(function() { 
    if(window.jQuery) return; 

    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
    po.src = 'some.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
})(); 

を。少なくとも1つの<スクリプトがサイトにある場合は、このスクリプトを使用します。私が知っていることから、それは最良のソリューションと考えられています。

関連する問題