类型不匹配 - JavaScript

Min*_*nja 6 javascript

我在尝试使用以下代码时遇到了问题.它在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);
Run Code Online (Sandbox Code Playgroud)

Roc*_*mat 19

writeIframe11092()调用该函数并返回一个值(undefined在本例中),并将该值传递给attachEvent.

writeIframe11092 是一个表示函数本身的变量,这就是你想在这里使用的东西.

if (window.attachEvent){
    window.attachEvent('onload', writeIframe11092);
}
else if (window.addEventListener){
    window.addEventListener('load', writeIframe11092, false);
}
Run Code Online (Sandbox Code Playgroud)

  • 关于StackOverflow我最喜欢的部分是没有获得解决问题的帮助(尽管这非常有帮助),但获得了我可以应用于未来问题的知识.你回答这个问题的方式引起了我的注意.非常感谢答案! (2认同)