javascript - jquery:从 $(window).load() 中排除外部资源

标签 javascript jquery

我需要在加载我的域和子域上的所有资源时执行一些脚本,所以我这样做了:

$(window).load(function(){
  // al my functions here...
}

问题是有些外部资源(不在我的域和子域中)有时需要更长时间才能加载。有没有办法从加载事件中排除外部资源?

编辑: 我希望做这样的事情:

$(window).not(".idontcare").load(function()

但是没用

最佳答案

我猜你的外部资源依赖于 src 属性。

如果是这样,您可以在您的页面源代码中设置您不想等待的资源的 src 属性,不是 src 而是 external_src.

然后你可以很容易地做到:

$(document).ready(function(){

    $(window).load(function(){
        // all your functions here...
    });

    $('[external_src]').each(function() {

        var external_src = $(this).attr("external_src");

        $(this).attr("src", external_src); // now it starts to load
        $(this).removeAttr("external_src"); // keep your DOM clean

        //Or just one line:
        //$(this).attr("src", $(this).attr("external_src")).removeAttr("external_src");

    });

});

这样,只要 DOM 准备就绪,外部资源就应该开始加载,而无需等待整个窗口加载。

关于javascript - jquery:从 $(window).load() 中排除外部资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028821/

相关文章:

javascript - 用另一个 HTML 标签将 HTML 标签包装在纯字符串中

jquery - 如何仅更改具有多个功能的 CSS 转换属性的一个功能?

jquery - 防止 Web 方法滥用的好方法是什么?

javascript - jQuery $.fn.extend 或 $.extend 使用哪种模式

javascript - 检测无法显示 HTML5 的浏览器

javascript - Safari 和 IE 浏览器中 DRM 内容的加密事件等效项

javascript - 是否可以为 React 的类模型打开 React.js 自动绑定(bind)

javascript - 使用 lodash 重新映射属性名称和值

javascript - 如何创建一个空的 jQuery 数据项?

javascript - 使用 jQuery 为复选框设置 "checked"