2013-03-20 15 views
6

次のコードを使用しようとすると問題が発生しています。 Firefox、Safari、Chrome、IE 9 + 10では完璧に動作しますが、IE8で動作しているときには、他のページがクラッシュする原因になります。私が受け取るコンソールエラーは 'タイプの不一致'で、デバッガはIF文の行を指します。私はそれを理解しようと壁に頭を叩いているが、役に立たない。誰もがここで何が起こっているかについての手掛かりを持っていますか?タイプの不一致 - JavaScript

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); 
+1

if文の後に中カッコで入力することはできますか? – DevelopmentIsMyPassion

答えて

19

writeIframe11092()は、関数を呼び出すと(この場合undefined)の値を返し、attachEventにその値を渡します。

writeIframe11092は、関数自体を表す変数です。ここで使用する変数です。

if (window.attachEvent){ 
    window.attachEvent('onload', writeIframe11092); 
} 
else if (window.addEventListener){ 
    window.addEventListener('load', writeIframe11092, false); 
} 
+2

StackOverflowに関する私のお気に入りの部分は、問題を解決するための助けを得ていませんが(それは非常に役に立ちますが)、将来の問題に適用できる知識を得ることができます。あなたがこの質問にちょうど答えた方法は私の心を吹き飛ばした。本当に答えをありがとう! – Minja

+0

@deniatus:どうぞよろしくお願いいたします。私は試してみる。 :)私が答えたときに、私はなぜ試したメソッドがうまくいかなかったのかを説明するのが好きで、ただ "ここが正解です" –

関連する問題