キー押下時などのイベント情報を取得しようとして気がついたこと。
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)" />
