我希望在整个页面加载完成后执行脚本。
目前的方式是:
window.onload=document.getElementById('loaded').value=1;
哪个不好,因为有些图片仍处于加载状态,并且页面尚未真正完成加载。我做错了什么?
当然在Chrome和Firefox中对我不起作用。问题是我之后启动了一个代码,它返回状态204,这阻止了未来的负载。但是,在页面加载完成之前,它会返回204状态。所以我需要在页面真正加载后执行我的代码。
修改
设置一个破帧的页面
<iframe id="myframe" height=1 width=1></iframe>
<script type="text/javascript">
window.onload=document.getElementById('myframe').src='http://link to a frame braker page';
</script>
当您将上述代码放入页面时,它会在页面完全加载之前加载iframe。只需在iframe页面中发出警报,然后在较慢的服务器上试用,其父页面包含大图像等。
答案 0 :(得分:4)
window.onload
事件应该等待图像在被触发之前加载:
加载事件在结束时触发 文件加载过程。在这 点,所有的对象 文档在DOM中,全部 图像和子帧已经完成 负荷。强>
您可能需要查看以下Stack Overflow帖子以供进一步阅读:
<强>更新强>
bobince in another answer确定了您的实施不起作用的原因。解决方案是使用:
window.onload = function() {
document.getElementById('loaded').value = '1';
};
答案 1 :(得分:4)
的window.onload =的document.getElementById( '加载')值= 1;
你忘了把它变成一个功能。你在说什么:
document.getElementById('loaded').value= 1;
window.onload= 1;
显然,作为负载检测器并不是很有效。你的意思可能是:
window.onload= function() {
document.getElementById('loaded').value= '1';
};
答案 2 :(得分:-1)
如果您可以使用Jquery,请查看FrameReady插件 检查this问题。了解更多信息