是否可以确定页面是否正在加载任何资源,包括在HTML文档加载之后还是从新的ajax请求中?
用例是我有一个站点,我需要在那里拍摄一个截图,但想要等到一切都呈现出来。这意味着:
检测动画和CSS转换是困难的,也不是必要的。如果你有一个涵盖1-3的解决方案,我会接受的。如果您还知道如何检测CSS转换和JS动画等,那么您将非常棒,我将接受这一点:)
发布于 2014-06-05 00:30:47
我认为要回答这个问题,我们应该从不同的角度出发。
首先,您要将所有javascript代码包装为
$( window ).load(function() {
// Run code
});
这将迫使您的函数在页面完全加载时触发,包括图形、载荷法。
引用jquery网站
当一个元素和所有子元素被完全加载时,load事件将被发送到它。此事件可以发送到与URL关联的任何元素:图像、脚本、框架、iframes和窗口对象。
这种方法将解决第1点和第2点,这与在加载DOM时触发就绪法略有不同。
第三点有点难处理,但是你可以用
$( document ).ajaxStop(function() {
//run code here
});
因为它注册了一个处理程序,以便在所有Ajax请求完成后调用- ajaxStop。
引用jquery网站
每当Ajax请求完成时,jQuery都会检查是否还有其他未决的Ajax请求。如果没有保留,jQuery将触发ajaxStop事件。此时将执行已在.ajaxStop()方法中注册的任何和所有处理程序。如果上次未完成的Ajax请求通过在ajaxStop回调函数中返回false来取消,则还会触发beforeSend事件。
最后的代码如下所示:
$( window ).load(function() {
$( document ).ajaxStop(function() {
//run code here
});
});
希望能帮上忙!
https://stackoverflow.com/questions/23984907
复制相似问题