繁体   English   中英

IE8中未触发window.onload事件

[英]The window.onload event is not firing in IE8

我精简了这个javascript,使其尽可能简单,但仍无法在IE8中使用。

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload !== 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    };
  }
}

function callkits() {
    alert('Kits: Bug testing');
}

//addLoadEvent(callkits);
//window.onload = callkits;
window.onload = function() {
    callkits();
};

在IE8中,这两种注释掉的方法或活动方法均无法执行任何操作。 启用了Javascript。 (在函数外部直接调用alert确实有效。)我在这里扯头发。

编辑:

好的,现在更简单了:

alert('Before onload.')

window.onload = function() {
    alert('Onload');
};

alert('After onload');

在Firefox,Opera,Safari和Chrome中,我得到“加载前”,“加载后”,然后显示页面,然后显示“加载”。 在IE8中,最后一步不会发生。 window.onload根本不触发。

如果使用HTML defer命令调用另一个脚本,则标准的onload事件将不起作用。

<script for="window" event="onload" defer="1">products.related();</script>

将上面的内容更改为使用标准的addLoadEvent()函数即可使其正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM