6

尝试使用以下代码时遇到问题。它在 Firefox、Safari、Chrome 和 IE 9+10 中完美运行,但在 IE8 中运行时会导致我的页面的其余部分“崩溃”。我收到的控制台错误是“类型不匹配”,调试器指向 IF 语句行。我一直把头撞在墙上试图弄清楚,但无济于事。有没有人知道这里到底发生了什么?

function writeIframe11092()
{
    alert("BEFORE");
    document.write('<iframe style=\"position:absolute;left:-40000px;\" src=\"https://mydomain.com/images/close.gif\" ></iframe>');
    alert("AFTER");
}

if (window.attachEvent) 
    window.attachEvent('onload', writeIframe11092() );
else if (window.addEventListener) 
    window.addEventListener('load',  writeIframe11092(),false);
4

1 回答 1

20

writeIframe11092()调用函数并返回一个值(undefined在这种情况下),并将该值传递给attachEvent.

writeIframe11092是一个代表函数本身的变量,这就是你要在这里使用的。

if (window.attachEvent){
    window.attachEvent('onload', writeIframe11092);
}
else if (window.addEventListener){
    window.addEventListener('load', writeIframe11092, false);
}
于 2013-03-20T21:03:49.803 回答