1

重複の可能性:
Javascript KeyCode vs CharCode = 完全な混乱

String.charCodeAt(index)の戻り値と JavaScript キーコードの違いは何ですか? そして、2つの間で翻訳する方法はありますか?

例えば:

console.log('.'.charCodeAt(0));  // prints 46 on Mac/Chrome

しかし、'.' の keyCode は は190です。

4

2 に答える 2

2

string.charCodeAt(index) は、指定された位置にある文字列の文字の ASCII 値を返すように設計されています。

keyCode は、押されたキーボード キーの値のブラウザー実装です。残念ながら、すべてのブラウザーで標準化されているわけではありません。

編集:

String.fromCharCode(unicodeValue);

これにより、keyCode などの Unicode 値が ascii 値に変換されます。すべての keyCode 値が適切な ascii 値に変換されるわけではないことに注意してください (存在しないため) { delete、up、down、left、right、home、insert、page up、page down }

例: Delete キーを押すと、46 の keyCode が返されます。46 はalert(String.fromCharCode(46));ピリオドの ASCII 値であるため、ピリオドが出力されます。

于 2013-01-24T19:04:52.353 に答える
1

onkeydown や onkeyup とは異なり、onkeypressイベントは実際には、以下charCodeを使用して文字表現に変換できるプロパティを返します。String.fromCharCode

input.onkeypress = function(e) {
     var char = String.fromCharCode(e.charCode);
}

また、このリンクをチェックして、さまざまなブラウザーとプラットフォームでの keyCodes / charCodes に関する優れた調査を行ってください。

http://unixpapa.com/js/key.html

于 2013-01-24T19:27:16.407 に答える