0

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

アップデート:

祇園の提案の後の様子は次のとおりです。

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

6 に答える 6

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>
于 2012-04-19T06:13:50.060 に答える
1

jqueryがこのようにロードされているかどうかを確認できます

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

また、jqueryがロードされていない場合は、requirejshttp : //requirejs.org/のようなjavascriptローダーを使用することをお勧めします。

于 2012-04-19T06:13:28.593 に答える
0

あなたはそれをに設定することができますwindow.onload

window.onload = function () { alert("It's loaded!") }

ページが完全に読み込まれたときにJavascriptを実行する

于 2012-04-19T06:12:15.693 に答える
0

jQueryファイルを含めるには、必要な場合にのみ、最初にチェックする必要があります

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()"?>
于 2012-04-19T06:16:37.587 に答える
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';
    }
}
于 2012-04-19T06:18:03.040 に答える
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 は以下を使用します。

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

これにより、Web サイトに既に存在する最初のタグにスクリプトが追加されます。サイトに少なくとも 1 つの <script> がある場合は、これを使用します。私が知っていることから、それが最善の解決策と考えられています。

于 2012-04-19T06:19:28.570 に答える