windows.onload事件未在IE8中触发

时间:2011-03-02 13:19:15

标签: javascript internet-explorer

我删除了这个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中,我得到“Before onload”,“After onload”,然后页面出现,然后是“Onload”。在IE8中,最后一步不会发生。 window.onload根本就没有解雇。

1 个答案:

答案 0 :(得分:1)

如果使用HTML defer命令调用另一个脚本,则标准onload事件将无效。

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

更改上述内容以使用标准addLoadEvent()功能使其正常工作。