3

我有一些网页依赖body.onload(或等效window.onload地)来正确设置它们。有时onload不被调用。

某些网络浏览器(最好是 Chrome,这显然最常发生这种情况)是否有一个技巧可以告诉我究竟是什么阻止了页面成功加载?

提示:当我按 F5 重新加载整个页面时,这种情况很少(甚至可能永远不会)发生,但更普遍的是,如果通过单击链接或将 url 粘贴到地址栏中到达页面,就会发生这种情况。有没有onload可能让我绊倒的语义怪癖?

注意脚本本身不会在控制台中产生任何错误。

4

2 回答 2

3

我想你想要window.onload

于 2012-11-08T17:30:32.463 回答
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窗口对象的事件或框架的就绪事件。

//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);

不同的图书馆都有自己的方式。

于 2012-11-10T23:10:08.423 回答