使用常规javascript检测Jquery,如果不存在则动态加载它

Pat*_*tec 4 html javascript jquery

我需要代码使用常规javascript来检测JQuery是否存在,如果没有,从谷歌或其他网站加载JQuery文件

更新两个工作解决方案(只需在此复制和粘贴工作代码):

来自Claudio Redi

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

来自Rob Darwin

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

Cla*_*edi 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>   
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 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);
}
Run Code Online (Sandbox Code Playgroud)

但这会导致异步加载 - 因此您可能希望包含一个.onload处理程序以允许执行等待加载完成.