attachEvent / addEventListener to Window onload / load - 首选方式

时间:2011-03-25 18:22:11

标签: javascript javascript-events

我有一个脚本在页面加载时启动,我使用下面的代码启动它:

if (window.addEventListener) {
  window.addEventListener('load', otherRelatedParts, false);
}
else if (window.attachEvent) {
  window.attachEvent('onload', otherRelatedParts );
}

但今天我尝试使用这样的自调用函数:

(function() {
otherRelatedParts();
}())

它似乎在所有浏览器中都有效,并且代码较少。这是向窗口加载添加事件的首选方法吗?

2 个答案:

答案 0 :(得分:11)

您的自调用函数将比window.onload更早执行。它将在浏览器读取它时执行。在大多数情况下,它实际上没有任何区别,所以你可以这样使用它。通常在下载所有对象(图像,JavaScript文件等)时引发Window.load。 $(document).ready()在window.onload之前触发 - 当DOM准备好进行操作时。

答案 1 :(得分:1)

我想上面的if子句是为了解决一些跨浏览器问题。你应该将这些东西从你的代码中分解出来。

正如其他人之前所做的那样,您也可以将某些库用作jQuery。你应该在那里寻找.ready()