quirksmode.org で関連する記事のほとんどを読みましたが、これについてはまだよくわかりません:
アプリを IE8 と互換性を持たせる (fun fun fun) onclick イベントをリンクに設定しようとすると、この問題が発生します。
function myClickHandler(event)
{
alert(event);
}
var link = document.getElementById("myLink");
link.onclick = myClickHandler; //first option
とは対照的に:
function myClickHandler(event)
{
alert(event);
}
var link = document.getElementById("myLink");
link.onclick = function() {
myClickHandler(event); //second option
}
最初のオプション myClickHandler alerts を使用しますundefined
。2 番目のオプション アラート[object Event]
を使用すると、イベント オブジェクトが最初のオプションによってハンドラーに渡されていないと思われます。なぜこれはIE8でそうなのですか?
注:実行中に単一のリスナーをオーバーライドしたいので、 attachEvent を使用したくないので、onclick
ここにうまく収まるようです。