2012-04-11 82 views
1

我的要求是,我必须在所有页面脚本执行完成后执行脚本。我使用下面的代码做同样的在这种情况下检测window.load的有效方法

$(window).load(function() 
{ 
    var j = setTimeout (function() 
    { 
    alert("All page scripts have been executed and DOM is ready."); 
    // And here the script will work 
     to update the DOM changes made by the pagescripts. 
    },100); // Here execution time cant be less than 100 all the time, right? 
}); 

但问题是,在上述情况下,我已经使用时间100.但有时页面在101毫秒加载。在这种情况下,脚本无法更新更改。 让我们看看这个例子

有一个页面脚本,当DOM准备就绪时,它会将图像添加到DOM。如果我使用

$(document).ready() 

脚本无法检测图像,因为图像尚未添加到DOM。

如果您需要更多关于问题的解释,请让我知道。

+1

可能的重复[延迟jquery脚本,直到一切都已加载](http://stackoverflow.com/questions/1012140/delaying-a-jquery-script-until-everything-else-hasloaded) – ManseUK 2012-04-11 13:49:48

+0

在重复的最上面的答案 - 它告诉你命令运行...所以只要确保你的'$(window).load()'在身体的底部 - 它将运行一次所有脚本在' $(document).ready()'并且所有图像和所有内容都被执行 – ManseUK 2012-04-11 13:51:06

+0

@ManseUK你是说,我应该在页面脚本后面粘贴代码吗? – Exception 2012-04-11 14:09:44

回答

0

如果问题是您需要预加载它们的图像。
尝试使用this extension