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 に答える