1

スクリプトを使用してドキュメントに jQuery を追加しようとしていますが、firebug に従ってスクリプト要素とその属性が DOM にアタッチされていますが、jQuery ライブラリが見つかりません。非常に長い間待っていても、ライブラリが利用可能になりません。私は何を間違っていますか。

    if(typeof jQuery === 'undefined'){
        var script = document.createElement("script");
        script.type = "text/javascript";
        script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
        document.getElementsByTagName("head")[0].appendChild(script);
    }
4

3 に答える 3

0

私のコードの一部からコピーされた次のコードは(これは安全のためだけに)動作するはずです:

if (typeof(jQuery.ui) == 'undefined')
{
    var script     = document.createElement('script');
    script.src = url;

    var head = document.getElementsByTagName('head')[0],

    // Attach handlers for all browsers
    script.onload = script.onreadystatechange = function() {

         if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
        // callback function provided as param
        if(success != null)
        {
            success();
        }
        script.onload = script.onreadystatechange = null;
        };              
    };              
    head.appendChild(script);   
}

ところで、成功は、実際の初期化のために定義したコールバック関数です。gdoron が言ったように、ロードされるのを待つ必要があります。

于 2013-02-08T07:03:42.607 に答える
-1

これを試して。そのシンプルでうまく動作します..

if(typeof jQuery === 'undefined'){
var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
    document.head.appendChild(script);

}
于 2013-02-08T07:04:52.133 に答える
-2

代わりに、関数を使用してscript.srcみてくださいsetAttribute

if (typeof jQuery === 'undefined') {
    var script = document.createElement("script");
    script.setAttribute("type","text/javascript");
    script.setAttribute("src","http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js");
    document.getElementsByTagName("head")[0].appendChild(script);
}
于 2013-02-08T07:06:41.317 に答える