私はJavascriptでキー処理に取り組んでいます。私はいくつかの調査を行いましたが、キーの処理について正しく理解しているかどうかを知りたいです。
KeyDown / KeyUpイベント キーダウンイベントとキーアップイベントは、IE7+とFirefox3.5+でサポートされています。以前のバージョンのブラウザーはチェックしていませんが、これらのイベントもサポートしていると思います。
キーボードの各キーには常にキーコードがあると言うのは正しいですか。
CharCode
CharCode値は、keypressで使用できます。キーの大部分には、実際の値を表すcharcodeがあります。一部のキーには、文字コードが関連付けられていません。たとえば、バックスペース、削除、矢印キー。
キーを押すと、文字コードはキーコードと同じになると言ってもいいですか?
イベントの順序
- KeyDown
- KeyPress
- KeyUp
この順序はブラウザごとに異なりますか?たとえば、私には2つの機能があります。最初はKeyDownイベントにバインドされ、2番目はKeyPressイベントにバインドされます。KeyPressイベントを呼び出すということは、これらのイベントの1つだけを機能させたい場合に、KeyDownイベントも呼び出されることを意味します。
最後に、バージョンブラウザに応じて異なるキー処理ルーチンを使用することを検討しています。例えば:
- ブラウザのバージョンを確認する
- ブラウザのバージョンに応じてキー処理ルーチンを取得する
これにより追加のコードが導入されますが、メンテナンスが簡素化されます。また、将来、別のブラウザのサポートを提供したい場合は、別のルーチンを追加するだけで、既存の文字処理ルーチンに影響を与えることはありません。