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

Detect Jquery with regular javascript, if not present load it dynamcally

本文关键字:不存在 动态 加载 如果不 如果 javascript 常规 检测 Jquery      更新时间:2023-09-26

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

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

从 克劳迪奥·雷迪

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

来自 罗伯·达尔文

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();

有很多方法,我最喜欢这个只是因为不那么冗长

<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>   

在不使用 document.write 的情况下加载 jQuery 的方法是:

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);
}

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

这样的事情应该有效。

编辑:从上面的链接添加的代码。

var jQueryScriptOutputted = false;
function initJQuery() {
    //if the jQuery object isn't available
    if (typeof(jQuery) == 'undefined') {

        if (! jQueryScriptOutputted) {
            //only output the script once..
            jQueryScriptOutputted = true;
            //output the script (load it from google api)
            document.write("<scr" + "ipt type='"text/javascript'" src='"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'"></scr" + "ipt>");
        }
        setTimeout("initJQuery()", 50);
    } else {
        $(function() {  
            //do anything that needs to be done on document.ready
        });
    }
}
initJQuery();