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,如果没有,那么只在myquery.js中包含1.7.1.min.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 回答
1
if(typeof jQuery != "undefined") {
   $('.input-number').inputmask('+7 (999) 999-9999');
}
于 2017-09-05T23:53:56.923 回答