我有一些网页依赖body.onload
(或等效地,window.onload
)来正确设置它们。有时onload
没有被调用。
是否有一些网页浏览器(理想情况下是Chrome,这显然最常发生)的技巧会告诉我究竟是什么阻止网页成功加载?
线索:当我按F5重新加载整个页面时,很少(甚至可能永远不会)发生这种情况,但更常见的情况是,如果通过单击链接或将URL粘贴到地址栏中来到达页面,则会发生这种情况。是否有onload
语义的怪癖可能会使我绊倒?
N.B。脚本本身不会在控制台中产生任何错误。
答案 0 :(得分:3)
我想你想要window.onload
答案 1 :(得分:1)
我已经对这些案例进行了测试,以下任何一种都不会起作用:
var callback = function() { alert("Body loaded"); };
$("body").load(callback);
document.body.addEventListener("load",callback,false);
然而,document.body.onload
似乎工作正常。确保body
正确命名空间:
document.body //<body>
body //Reference error
如果你在谈论:
<body onload="callback();"></body>
然后返回并查看您的代码,因为它应该有用。
就个人而言,我建议使用窗口对象的load
事件或框架的ready事件。
//Execute when the window is loaded
var callback = function() {
//Your code goes here...
};
if (window.addEventListener) window.addEventListener("load",callback,false);
else window.attachEvent("load",callback);
使用jQuery,您只需要以下内容:
$(window).load(callback);
jQuery的ready事件如下:
$(document).ready(callback);
//Or just:
$(callback);
MooTools使用它:
window.addEvent("domready",callback);
不同的图书馆都有自己的方式。