【问题标题】:attachEvent / addEventListener to Window onload / load - preferred wayattachEvent / addEventListener to Window onload / load - 首选方式
【发布时间】:2011-03-25 18:22:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 不需要自调用功能,只需otherRelatedParts()即可。

标签: javascript javascript-events


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我猜上面的if 子句是为了解决一些跨浏览器问题而写的。您应该从代码中考虑这些内容。

    正如其他人以前做过的那样,您不妨使用一些库作为jQuery。你应该在那里寻找.ready()

    【讨论】:

    • 开发人员可能需要使用核心 javascript 的原因有很多,有时像 jQuery 这样的库只是矫枉过正。
    猜你喜欢
    • 2011-07-10
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多