检查是否已经定义了jquery

时间:2012-07-19 07:25:36

标签: jquery

您好我正在尝试为我的客户端创建一个插件,我将在他们的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,如果没有,那么只包括myquery.js中的1.7.1.min.js文件

如何检查是否已包含。请帮忙!

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分: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);

}

答案 2 :(得分:1)

if(typeof jQuery != "undefined") {
   $('.input-number').inputmask('+7 (999) 999-9999');
}