检查是否已经定义了jquery

Chr*_*ina 3 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>
Run Code Online (Sandbox Code Playgroud)

在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
Run Code Online (Sandbox Code Playgroud)

所以我想检查客户端html是否已经调用jquery-1.7.1.min.js,如果没有,那么只包括myquery.js中的1.7.1.min.js文件

如何检查它是否已包含在内.请帮忙!

Tim*_* S. 10

通常!!variable用来查看是否设置了变量.这种方式在许多着名的框架中使用,所以我倾向于使用它.

if(!!window.jQuery) {
    // jQuery is loaded
} else {
    // load jQuery first
}
Run Code Online (Sandbox Code Playgroud)

看看你的问题,你的方法也应该有用!使用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);
}
Run Code Online (Sandbox Code Playgroud)