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