window.onload = function(){}; 有效,但您可能已经注意到,它只允许您指定 1 个侦听器。
我想说更好/更新的方法是使用框架,或者只是使用本机 addEventListener 和 attachEvent(对于 IE)方法的简单实现,它允许您删除事件的监听器。
这是一个跨浏览器的实现:
// Cross-browser implementation of element.addEventListener()
function listen(evnt, elem, func) {
if (elem.addEventListener) // W3C DOM
elem.addEventListener(evnt,func,false);
else if (elem.attachEvent) { // IE DOM
var r = elem.attachEvent("on"+evnt, func);
return r;
}
else window.alert('I\'m sorry Dave, I\'m afraid I can\'t do that.');
}
// Use: listen("event name", elem, func);
对于 window.onload 案例使用:listen("load", window, function() { });
编辑我想通过添加其他人指出的宝贵信息来扩展我的答案。
这是关于 DOMContentLoaded(Mozilla、Opera 和 webkit nightlies 目前支持此功能)和 onreadystatechange(适用于 IE)事件 em> 可以应用于 document 对象以了解何时可以操作文档(无需等待所有图像/样式表等被加载)。
对于跨浏览器的支持有很多“hacky”实现,所以我强烈建议使用这个功能的框架。