イベント(event)の取得について

キー押下時などのイベント情報を取得しようとして気がついたこと。

onclickやonkeydownのイベント発生時に「event」オブジェクトから、マウスカーソルの位置や、押されたキーが取得できるが、この「event」のスコープがIEとFirefoxで異なる。
IEではグローバルとして宣言した変数と同様にどこでも取得できるのだが、Firefoxではイベントの属性の中でないと取得できない。
具体的には・・・



IEでもFirefoxでも取得できる。

<input type="text" value="" onkeydown="alert(event.keyCode)" />


IEでは取得できるが、Firefoxでは取得できない。

function foobar() {
alert(event.keyCode);
}

<input type="text" value="" onkeydown="foobar()" />


つまり、こうするとIEでもFirefoxでも取得できる。

function foobar(keyCode) {
alert(keyCode);
}

<input type="text" value="" onkeydown="foobar(event.keyCode)" />

タイトルとURLをコピーしました