如何检测动态加载时加载的jquery是否加载

How to detect jquery is loaded when loading it dynamicly

本文关键字:加载 jquery 是否 动态 何检测 检测      更新时间:2023-09-26

如果未加载,我正在尝试将jquery加载到页面。加载后,我将立即运行一些代码。使用下面的代码,我试图在加载 jquery 时捕获它。

我的代码正确加载了jquery,但没有引发onreadystatechange事件。

if(typeof jQuery=='undefined') {
    var headTag = document.getElementsByTagName("head")[0];
    var jqTag = document.createElement('script');
    jqTag.type = 'text/javascript';
    jqTag.src = 'http://localhost:8001/jquery-min.js';
    headTag.appendChild(jqTag);
    jqTag.onreadystatechange= function () {
        if (this.readyState == 'complete') {
            this.loadWidget(containerId);   
        }
    };
}
else {
    this.loadWidget(containerId);
}   

加载 jquery 时如何捕获它?

脚本标记具有脚本加载时间的onload事件

if (typeof jQuery === 'undefined') {
    var headTag = document.getElementsByTagName("head")[0];
    var jqTag   = document.createElement('script');
    jqTag.type = 'text/javascript';
    jqTag.onload = function() {
        this.loadWidget(containerId);   
    }
    jqTag.src  = 'http://localhost:8001/jquery-min.js';
    headTag.appendChild(jqTag);
} else {
    this.loadWidget(containerId);
}   

在我看来,你的代码太复杂了。

为什么不做HTML5样板已经做过的事情:

<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><'/script>')</script>

如果未检测到 window.jQuery 对象,它会优雅地故障转移以写出脚本标记以将其包含在本机 Javascript 中。 当然,您可以将路径更改为您想要的任何路径。

希望这有帮助。