1

押されたキーのキーコードを取得したら、コンソールにキーコードを出力します。keydownとkeypressの2つのキーコードを記録します。

F5キーを押すと、次のキーコードが表示されます。

keydown = 84 ("T")
keypress = 116 ("t")

tを押すと、次のキーコードが表示されます。

keydown = 116 ("t")
keypress = 116 ("t")

これはFirefoxでのみ発生します。押された元のキーが同じでないのに、キーを押すキーコードが同じで、キーダウンコードが似ているのはなぜですか?

4

1 に答える 1

2

混乱keyCodeしていないと思いますcharCodeか?

QuirksModeの下部からの結果を使用すると、次のようになります。

  • F5
    • キーダウン:keyCodeは116です。charCodeは0です
    • keypress:keyCodeは116です。charCodeは0です
  • t
    • キーダウン:keyCodeは84です。charCodeは0です
    • keypress:keyCodeは0です。charCodeは116です
  • T
    • キーダウン:keyCodeは84です。charCodeは0です
    • keypress:keyCodeは0です。charCodeは84です

keyCodeユーザーが実際に押したキーボードキーをcharCode表し、文字のコードポイントを表します。たとえば、キーtTkeyCode同じキーの結果であるため同じcharCodeですが、異なる文字を表すために異なります。

したがって、質問に答えるために、F5キーダウンで得られる出力は84であり、プラグを差し込むとString.fromCharCode()「T」になりますが、キーを押すと116になります。これは、を使用した「t」に対応しString.fromCharCode()ます。

要するに、結果は無意味なので、を使用String.fromCharCode()しないでください。keyCodeでのみ使用してcharCodeください。また、QuirksModeの「Specialkeys」から

これらのキーを検出する必要がある場合は、自分でキーコードonkeydown / upを検索し、onkeypressとcharCodeの両方を無視してください。

于 2013-01-01T03:36:38.343 に答える