どのプロパティのKeyboardEvent
例
押されたキーボードキーのUnicode値を取得します。
var x = event.which;
以下の「自分で試してみてください」の例をもっと見てください。
定義と使用法
whichプロパティは、onkeypressイベントをトリガーしたキーのUnicode文字コード、またはonkeydownまたは onkeyupイベントをトリガーしたキーのUnicodeキーコードを返します。
2つのコードタイプの違い:
- 文字コード-ASCII文字を表す数字
- キーコード-キーボードの実際のキーを表す数字
これらのタイプは必ずしも同じことを意味するわけではありません。たとえば、小文字の「w」と大文字の「W」は同じキーボードコードを持ちます。これは、キーボードで押されるキーが同じであるため(「W」=数字「87」だけ)、異なるためです。結果の文字が異なるための文字コード(「w」または「W」、つまり「119」または「87」)-理解を深めるには、以下の「その他の例」を参照してください。
ヒント:ユーザーが印刷可能なキー(「a」や「5」など)を押しているかどうかを確認するには、onkeypressイベントでこのプロパティを使用することをお勧めします。ユーザーがファンクションキー(「F1」、「CAPS LOCK」、「ホーム」など)を押しているかどうかを確認するには、onkeydownまたはonkeyupイベントを使用します。
注: whichプロパティは、IE8以前ではサポートされていません。これらのブラウザバージョンでは、 keyCodeプロパティを使用できます。ただし、keyCodeプロパティはFirefoxのonkeypressイベントでは機能しません。クロスブラウザーソリューションの場合、次のコードを使用できます。
var x = event.which || event.keyCode; // Use either which or keyCode, depending on browser support
ヒント:すべてのUnicode文字のリストについては、 完全なUnicodeリファレンスを参照してください。
ヒント:返されたUnicode値を文字に変換する場合は、fromCharCode()メソッドを使用します。
注:このプロパティは読み取り専用です。
注: whichプロパティとkeyCodeプロパティはどちらも、互換性のためにのみ提供されています。DOMイベント仕様の最新バージョンでは、 代わりにkeyプロパティを使用することを推奨しています(使用可能な場合)。
ヒント:キーイベントが発生したときに「ALT」、「CTRL」、「META」、または「SHIFT」キーが押されたかどうかを確認するには、 altKey、 ctrlKey、metaKey、または shiftKeyプロパティを使用します。
ブラウザのサポート
表の数字は、プロパティを完全にサポートする最初のブラウザバージョンを示しています。
Property | |||||
---|---|---|---|---|---|
which | Yes | 9.0 | Yes | Yes | Yes |
構文
event.which
技術的な詳細
戻り値: | Unicode文字コードまたはUnicodeキーコードのいずれかを表す数字 |
---|---|
DOMバージョン: | DOMレベル2イベント |
その他の例
例
onkeypressとonkeydownを使用して、文字コードとキーボードコードの違いを示します。
<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">
function uniCharCode(event) {
var char = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}
function uniKeyCode(event) {
var key = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}
キーボードの「a」キーを押すと(Caps Lockを使用しない場合)、charとkeyの結果は次のようになります。
Unicode CHARACTER code: 97
Unicode KEY code: 65
例
ユーザーがEscapeキーを押した場合に、いくつかのテキストを警告します。
<input type="text" onkeydown="myFunction(event)">
function myFunction(event) {
var x = event.which || event.keyCode; // event.keyCode is used for IE8 and earlier
if (x == 27) { // 27 is the ESC key
alert ("You pressed the Escape key!");
}
}
例
Unicode値を文字に変換します(ファンクションキーでは機能しません):
var x = event.which || event.keyCode; // Get the Unicode value
var y = String.fromCharCode(x); // Convert the value into a character
関連ページ
HTML DOMリファレンス:KeyboardEventkeyプロパティ
HTML DOMリファレンス:KeyboardEventkeyCodeプロパティ
HTML DOMリファレンス:KeyboardEventcharCodeプロパティ