找出所有内容真正完成加载的时间

Find out when all content has really finished loading

本文关键字:加载 时间      更新时间:2023-09-26

是否有可靠的跨浏览器解决方案来找出网站上所有内容何时完成加载?因为我有很多东西要加载(其中一些是在iframes),这并没有真正的工作(事件被触发,即使浏览器的加载指示器仍在旋转):

$(window).add('iframe').bind('load').promise().done(function() {
    alert('Too early :(');
});

我实际上在使用这个:

$(window).load(function () {
    // loading done, now perform for example animate/remove loader icon.
});

你可以在这里阅读更多信息:
http://api.jquery.com/load-event/

还有一个警告:

与images一起使用时的load事件注意事项

开发人员试图使用.load()快捷方式解决的一个常见挑战是,当图像(或图像集合)完全加载时执行函数。这里有几个需要注意的警告。这些都是:

跨浏览器不一致也不可靠
如果图像src被设置为与之前相同的src,它在WebKit中不会正确触发
它不能正确地弹出DOM树
对于已经存在于浏览器缓存中的图像

,可以停止触发。

我在现代浏览器上使用它,在mac/win上,到目前为止没有发现任何问题

在iframe内部只使用和使函数在顶层页面

$(function(){
    parent.function();
});