我删除了这个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
根本就没有解雇。
答案 0 :(得分:1)
如果使用HTML defer
命令调用另一个脚本,则标准onload事件将无效。
<script for="window" event="onload" defer="1">products.related();</script>
更改上述内容以使用标准addLoadEvent()
功能使其正常工作。