いいえ。古いバージョンの Windows では、イベント引数がイベント ハンドラーに渡されません。彼らはそれをグローバル変数に持ってwindow.event
おり、ターゲットは.srcElement
. その例外を除いて、常にイベント構造を取得する必要があります。
古いバージョンの IE の回避策は次のとおりです。
function(e) {
if (!e) {
e = window.event;
e.target = e.srcElement;
}
// code that uses e here
}
ただし、通常、これは、イベント ハンドラーのインストールに使用する関数によって、より高いレベルで対処されます。例えば:
// add event cross browser
function addEvent(elem, event, fn) {
if (elem.addEventListener) {
elem.addEventListener(event, fn, false);
} else {
elem.attachEvent("on" + event, function() {
// set the this pointer same as addEventListener when fn is called
window.event.target = window.event.srcElement;
return(fn.call(elem, window.event));
});
}
}