4

JQueryが存在するかどうかを検出するために、通常のjavascriptを使用するコードが必要です。存在しない場合は、Googleまたは別のWebサイトからJQueryファイルをロードします。

2つの実用的なソリューションを更新します(ここに実用的なコードをコピーして貼り付けるだけです):

クラウディオ・レディから

window.jQuery || document.write("<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'>\x3C/script>")

ロブダーウィンから

var jQueryScriptOutputted = false;
function initJQuery() {
    if (typeof(jQuery) == 'undefined') {
        if (! jQueryScriptOutputted) {
            jQueryScriptOutputted = true;
            document.write("<scr" + "ipt type=\"text/javascript\" src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"></scr" + "ipt>");
        }
        setTimeout("initJQuery()", 50);
    }
}
initJQuery();
4

3 に答える 3

16

多くの方法がありますが、冗長性が少ないという理由だけでこれが最も好きです

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>  
<script>window.jQuery || 
    document.write("<script src='js/jquery-1.7.2.min.js'>\x3C/script>")
</script>   
于 2012-05-23T21:35:11.993 に答える
11

使用せずにjQueryをロードする良い方法document.writeは次のとおりです。

if (window.jQuery === undefined) {
    var s = document.createElement('script');
    s.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js";
    document.head.appendChild(s);
}

.onloadただし、これにより非同期ロードが発生します。したがって、ロードが完了するまで実行を待機できるようにするハンドラーを含めることができます。

于 2012-05-23T22:05:29.327 に答える
3

このようなものが機能するはずです。

編集:上記のリンクから追加されたコード。

var jQueryScriptOutputted = false;
function initJQuery() {

    //if the jQuery object isn't available
    if (typeof(jQuery) == 'undefined') {


        if (! jQueryScriptOutputted) {
            //only output the script once..
            jQueryScriptOutputted = true;

            //output the script (load it from google api)
            document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
        }
        setTimeout("initJQuery()", 50);
    } else {

        $(function() {  
            //do anything that needs to be done on document.ready
        });
    }

}
initJQuery();
于 2012-05-23T21:28:36.723 に答える