gpt4 book ai didi

javascript - 如何确定 jQuery 是否在页面上运行(即使 jQuery 是/之后/检测脚本)

转载 作者:数据小太阳 更新时间:2023-10-29 03:50:13 26 4
gpt4 key购买 nike

我正在开发一个可以像 YouTube 视频一样嵌入到页面中的 do-dad。我想要的特定效果需要 jQuery 才能工作。

我想在页面上的某些内容尚未添加 jQuery 的情况下加载 jQuery。

我想测试一下

if (typeof($)=='function'){...

但这只有在页面到达我的脚本时加载并运行 jQuery 时才有效。由于目前的最佳做法是将脚本嵌入到页脚中,因此我的嵌入代码可能在大多数情况下永远不会看到 jQuery。

我想用onready代替onload,但是onready函数在jQuery里面。 (我想我可以使用独立脚本吗?有好的脚本吗?)

最后,我考虑过在超时延迟后测试 jQuery,但这似乎充其量不够优雅,最坏的情况下也不可靠。

有什么想法吗?

最佳答案

鉴于您的限制,我只看到两个选项:

  1. 使用window.load事件:

    (function() {
    if (window.addEventListener) {
    // Standard
    window.addEventListener('load', jQueryCheck, false);
    }
    else if (window.attachEvent) {
    // Microsoft
    window.attachEvent('onload', jQueryCheck);
    }
    function jQueryCheck() {
    if (typeof jQuery === "undefined") {
    // No one's loaded it; either load it or do without
    }
    }
    })();

    window.load 发生在加载周期的非常后期,但是,在所有图像都加载完之后。

  2. 使用超时。好消息是超时时间可能很短。

    (function() {
    var counter = 0;

    doDetect();
    function doDetect() {
    if (typeof jQuery !== "undefined") {
    // ...jQuery has been loaded
    }
    else if (++counter < 5) { // 5 or whatever
    setTimeout(doDetect, 10);
    }
    else {
    // Time out (and either load it or don't)
    }
    }
    })();

    您必须调整以确定计数器和间隔的最佳值。但是如果 jQuery 甚至在第一个或第二个循环中都没有加载,我的猜测(未经测试)是它不会被加载......除非其他人正在做你正在做的事情。 :-)

关于javascript - 如何确定 jQuery 是否在页面上运行(即使 jQuery 是/之后/检测脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com