为了账号安全,请及时绑定邮箱和手机立即绑定

使用JS附加body onload事件

使用JS附加body onload事件

红颜莎娜 2019-11-30 10:47:13
如何通过跨浏览器方式将主体onload事件与JS关联?这样简单吗?  document.body.onload = function(){      alert("LOADED!");  }
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这利用了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;


查看完整回答
反对 回复 2019-11-30
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

为什么不使用window自己的onload事件?


window.onload = function () {

      alert("LOADED!");

}

如果我没记错的话,那么所有浏览器都兼容。


查看完整回答
反对 回复 2019-11-30
?
ITMISS

TA贡献1871条经验 获得超8个赞

jcalfee314的想法对我有用-我有一个window.onload = onLoad含义,即其中的函数<body onload="...">没有被调用(我无法控制)。


这修复了它:


oldOnLoad = window.onload

window.onload = onLoad;


function onLoad()

{

oldOnLoad();

...

}

编辑:Firefox不喜欢oldOnLoad = document.body.onload;,所以替换为oldOnLoad = window.onload。


查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信