javascript - 用 JS 附加一个 body onload 事件

标签 javascript html events onload

如何以跨浏览器的方式使用 JS 附加 body onload 事件?就这么简单?

  document.body.onload = function(){
      alert("LOADED!");
  }

最佳答案

这利用了 DOMContentLoaded - 它在 onload 之前触发 - 但允许你保持所有的不引人注目......

window.onload - Dean Edwards - 博客文章对此进行了更多讨论 - 这是从同一博客的评论中复制的完整代码。

// Dean Edwards/Matthias Miller/John Resig

function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;

  // kill the timer
  if (_timer) clearInterval(_timer);

  // do stuff
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
  document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      init(); // call the onload handler
    }
  };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
  var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      init(); // call the onload handler
    }
  }, 10);
}

/* for other browsers */
window.onload = init;

关于javascript - 用 JS 附加一个 body onload 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1235985/

相关文章:

html - 无需媒体查询即可转换为单列的四列布局

c# - 这对扩展方法来说是个好主意吗?

java - 如何实现javafx鼠标事件 "push and hold"?

events - 事件点击 Handlebars

javascript - 数组项循环后,使用计时器使用新数据再次重新循环它们

Javascript 异步跳过 if-else

javascript - 如何将字符串转换为对象作为键值对?

javascript - 如何使用 Javascript 逐行获取 div 内容?

javascript - 使用 javascript 更改 URL

html - 构建允许所有者使用 CSS 和 HTML 以自定义方式放置面板 (div) 的漫画站点