3

こんにちは、クライアント用のプラグインを作成しようとしています。html に次のコードを追加するだけです。

<html>
<head>
</head>

<body>
    <script type="text/javascript">
    var clientID = "123";

    (function() {
        var test = document.createElement('script'); test.type = 'text/javascript'; test.async = true;
        test.src = 'myjavascript.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(test, s);
    })();
    </script>

    <div id="addimage"></div>
</body>
</html>

そして、myjavascript.js ファイルで jquery ライブラリを呼び出します。

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


if (typeof jQuery === "undefined") {
    var script = document.createElement('script');
    script.src = 'http://mysite.com/js/fancybox.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);
}

// my rest code goes here

したがって、クライアントhtmlがすでにjquery-1.7.1.min.jsを呼び出す必要があるかどうかを確認したいのですが、そうでない場合は、1.7.1.min.jsファイルのみをmyquery.jsに含めます

すでに含まれているかどうかを確認する方法。助けてください!

4

3 に答える 3

10

通常!!variable、変数が設定されているかどうかを確認するために使用します。この方法は多くの有名なフレームワークで使用されているため、私も使用する傾向があります。

if(!!window.jQuery) {
    // jQuery is loaded
} else {
    // load jQuery first
}

あなたの質問を見ると、あなたの方法もうまくいくはずです! を使用typeof variable === 'undefined'することも非常に有効なアプローチです。


編集:どうやらこれは十分な情報ではないので、コードを書き直します

if(!window.jQuery) {
    var script = document.createElement('script');
    script.src = 'http://mysite.com/js/jquery-1.7.1.min.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('body')[0].appendChild(script);
}
于 2012-07-19T07:27:54.147 に答える
2

回答に加えて、Tim S.$.jquery を使用してバージョンを取得できます

var head = document.getElementsByTagName('head')[0];
if(!! jQuery && jQuery('body').jquery == '1.7.1'){

    // jquery 1.7.1 included so only put your script
    var script = document.createElement('script');
    script.src = 'http://mysite.com/js/myotherscripts';
    script.type = 'text/javascript';
    head.appendChild(script);


} else {

    // Include jquery first 
    var script = document.createElement('script');
    script.src = 'http://mysite.com/js/jquery-1.7.1.min.js';
    script.type = 'text/javascript';
    head.appendChild(script);

    // Then include your scripts
    var script = document.createElement('script');
    script.src = 'http://mysite.com/js/myotherscripts';
    script.type = 'text/javascript';
    head.appendChild(script);

}
于 2012-07-19T07:39:46.140 に答える