JavaScriptでキーボードのどのキーが現在押されているかをチェックする。
JavaScriptではABCなどのアルファベットキーからタブやエンターキー、コントロールキーなどの機能キーなどの押された状態がチェック出来る
キーを押したとき、どんな情報が取得されるかを見るために入力したキー情報を画面に表示していくJavaScriptプログラムを作った。
実際に取得される値(アルファベットや数字キー以外)はこんな感じ
キーの種類 | 取得文字列 |
---|---|
エスケープ | Escape |
全角/半角 | Zenkaku |
タブ | Tab |
シフト | Shift |
コントロール | Control |
Windowsキー | OS |
エンター | Enter |
デリート | Delete |
挿入 | Insert |
ファンクション1~12 | F1~F12 |
右矢印 | ArrowRight |
左矢印 | ArrowLeft |
上矢印 | ArrowUp |
下矢印 | ArrowDown |
ちなみに大文字の「A」などは、シフトキーを押したままaキーを押すときちんと「A」として取得されていた。
プログラム: showKeyType.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="style.css"> <title>入力したキー情報を画面に表示していく</title> <script> var keyString = ""; window.onkeydown = function(e){ // 入力キー情報を取得 var key = e.key; // 今までの入力キー情報を連結 keyString += key; // 画面に表示 document.getElementById("out").innerHTML = keyString; } </script> </head> <body> <h1>入力したキー情報を画面に表示していく</h1> <p id="out"></p> </body> </html>
解説
キーボードを押した時の判定は、windowのkeydownイベントで取得している。
window.onkeydown = function(e){ /* キーが押された時の処理 */ }
どのキーが押されたかの情報は、このwindowイベント引数のeを使って
var key = e.key;
として取得できる。
例えばキーボードのaが押された場合、変数keyには「a」が入る。
エンターキーを押したときは、文字列として「Enter」が入ってくる。
これを利用すれば、特殊キーが押されたかの判定も可能だ。
例)JavaScriptでコントロールキーが押された時の判定をする
window.onkeydown = function(e){ // 入力キー情報を取得 var key = e.key; if(key === "Control") console.log("コントロールキーが押されました"); }
コメント