Event.which, Event.charCode, Event.keyCode
違いがわからんうえに、ちゃんとキーボードと対応してない。英語キーボードだとちゃんと対応してんのか?
e.which, e.charCode, e.keyCode, String.fromCharCode(e.which) の順で、前者が keydown、後者が keypress。環境は Firefox 1.0.7
- ;
- 61 0 61 = / 59 59 0 ;
- C-;
- 61 0 61 = / 61 61 0 =
- C-+ (Ctrl+Shidt+;) テンキー側の C-+ は問題なし
- 61 0 61 = / 61 61 0 =
- C-:
- 59 0 59 ; / 59 59 0 ;
- C-| (Ctrl+Shift+\)
- 220 0 220 テ・ / 発生しない
- C-a
- 65 0 65 A / 97 97 0 a
- C-F1
- 112 0 112 p / 0 0 112
差が一定ってわけじゃないし、どうやってマッピングすればいいか見当がつかない。さらに IE だとイベントが発生するタイミングがまた全然違う。帰れ。
Gecko_DOM_Reference:Examples#Example_7:_Displaying_Event_Object_Constants
つまり、正確に処理するにはキーボード配置を自分で作らないとダメなわけか。入力された文字を取得したいのに、入力されたキーしか取得できない。Gecko の e.charCode って charCode じゃないだろ。
それにしてもなんでセミコロンの位置でDOM_VK_EQUALSなんだろう。わからん。
関連エントリー
- DOM の KeyBoardEvent の e.keyCode とか e.which とかを文字列としてとりたいやつ 昔 keyString.js という KeyBoardEvent からなんとなく押されたキーの文字列表記になおすやつを書いたことがある。 h...
- getElementsByTagName on Gecko Gecko の getElementsByTagName がおかしいなぁ。document.getElementsByTagName("*"...
- NiZ Keyboard PLUM からキーマップや打鍵回数を読み出す NiZ のアプリケーションは Windows 向けしかない。プロトコルが気になったので、とりあえず打鍵回数を読み出すところをまでをやってみた...
- JavaScript ArrayBuffer -> String 変換 500 Can't connect to stackoverflow.com:443 (certificate verify failed)...
- NiZ Keyboard PLUM のキーマップを macOS や Linux から書き換える 前回 に引き続き NiZ のキーマップをごにょごにょする。 とりあえず表題の通り、キーマップの書きかえまではできた。 レポジトリ: http...