10

私はJavascriptでキー処理に取り組んでいます。私はいくつかの調査を行いましたが、キーの処理について正しく理解しているかどうかを知りたいです。

KeyDown / KeyUpイベント キーダウンイベントとキーアップイベントは、IE7+とFirefox3.5+でサポートされています。以前のバージョンのブラウザーはチェックしていませんが、これらのイベントもサポートしていると思います。

キーボードの各キーには常にキーコードがあると言うのは正しいですか。

CharCode

CharCode値は、keypressで使用できます。キーの大部分には、実際の値を表すcharcodeがあります。一部のキーには、文字コードが関連付けられていません。たとえば、バックスペース、削除、矢印キー。

キーを押すと、文字コードはキーコードと同じになると言ってもいいですか?

イベントの順序

  • KeyDown
  • KeyPress
  • KeyUp

この順序はブラウザごとに異なりますか?たとえば、私には2つの機能があります。最初はKeyDownイベントにバインドされ、2番目はKeyPressイベントにバインドされます。KeyPressイベントを呼び出すということは、これらのイベントの1つだけを機能させたい場合に、KeyDownイベントも呼び出されることを意味します。

最後に、バージョンブラウザに応じて異なるキー処理ルーチンを使用することを検討しています。例えば:

  • ブラウザのバージョンを確認する
  • ブラウザのバージョンに応じてキー処理ルーチンを取得する

これにより追加のコードが導入されますが、メンテナンスが簡素化されます。また、将来、別のブラウザのサポートを提供したい場合は、別のルーチンを追加するだけで、既存の文字処理ルーチンに影響を与えることはありません。

これまで私はhttp://www.quirksmode.orgを読んでいます

4

3 に答える 3

7

次のページを参照してください、彼らはあなたの質問に答えます:

onkeydownイベントonkeypressイベントkeyCodeプロパティcharCodeプロパティwhichプロパティ

于 2010-08-13T10:46:52.227 に答える
6

Jan Wolterによる次の記事は私を失敗させたことはなく、私が見たブラウザの主要なイベントに関する最高のリソースです:http: //unixpapa.com/js/key.html。それはあなたが提起したすべての質問に答えます。

強調すべきことの1つは、キーイベントプロパティを自由に使用することで、キー処理コードで特定のブラウザをスニッフィングする必要がほとんどないことです。

于 2010-08-13T19:32:33.417 に答える
0

2015年の更新:

event.charCodeMDNによるとevent.keyCodeevent.whichすべて非推奨になっています。event.keyどのキーが押されたかを確認するための最新かつ最もホットな方法です。

使い方は簡単に見えますが、ブラウザのサポートは完璧ではありません。現在、Chrome 45以降(まだAFAIKはリリースされていません)、Firefox 23以降、IE9以降で部分的にサポートされています。

于 2015-05-21T10:23:47.580 に答える