キーボードの入力(KeyDown)を受け取る

JavaScriptでキーボードの入力を受け取るコードを紹介します。

概要

JavaScriptでキーボードの入力を受け取る場合は、document.onkeydownイベントにキーが押された際に実行される関数を設定します。

プログラム例

コード

以下のHTMLファイルを作成します。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">
      document.onkeydown = keydown;

      function keydown(event) {
        target = document.getElementById("message");
        target.innerHTML = "キーが押されました KeyCode :" + event.keyCode;

        target = document.getElementById("messageShift");
        if (event.shiftKey == true) {
          target.innerHTML = "Shiftキーが押されました";
        }
        else {
          target.innerHTML = "";
        }

        target = document.getElementById("messageCtrl");
        if (event.ctrlKey == true) {
          target.innerHTML = "Ctrlキーが押されました";
        }
        else {
          target.innerHTML = "";
        }

        target = document.getElementById("messageAlt");
        if (event.altKey == true) {
          target.innerHTML = "Altlキーが押されました";
        }
        else {
          target.innerHTML = "";
        }
      }
    </script>
</head>

<body>

  <div>メッセージ</div>
  <div id="message"></div>
  <div id="messageShift"></div>
  <div id="messageCtrl"></div>
  <div id="messageAlt"></div>
</body>
</html>

解説

JavaScript実行時にdocument.onkeydown = keydown を実行し、キーが-押されたらkeydown()関数を実行する動作とします。
keydown()関数では、押されたキーのコードを取得し、画面に表示します。キー入力と同時に押されたShift,Ctrl,Altキーは、イベントのshiftKey, ctrlKey, altKeyプロパティに状態が格納されており、それらの値を判定しています。
メッセージの出力については「ページ内の指定した位置に文字を出力する方法」の記事を参照してください。

キーコードについて

https://www.ipentec.com/utils/WebKeyCode/のツールを利用すると、キーに対するキーコードを調べることができます。

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図の画面が表示されます。


キーボードのキーを押すと画面にキーコードが表示されます。


ShiftキーやCtrlキーを同時に押すと、それらの就職キーも検出でき、メッセージが表示されます。



このページのキーワード
  • JavaScript
  • KeyDown
  • キーボードの入力を受け取る
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2014-12-23
iPentec all rights reserverd.