HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOM KeyboardEventのgetModifierState()メソッドの使い方を解説

getModifierState()メソッドは、指定した修飾キー(モディファイアキー)が現在押されているかどうかを判定し、押されていればtrue、押されていなければfalseを返します。CapsLockのように画面からは把握しにくいキーの状態をJavaScriptから手軽に確認できるため、パスワード入力中にCapsLockのオンを警告するなど、ユーザビリティ向上を目的とした場面でよく活用されています。

構文

getModifierState()メソッドの基本構文は次のとおりです。引数には、状態を調べたい修飾キーの名前を文字列で指定します。

event.getModifierState("modifierKey")

指定できる修飾キーの一覧

引数の"modifierKey"には、以下の修飾キー名を指定できます。

modifierKey対応するキー
AltAltキー(MacではOptionキー)
AltGraphAltGrキー
CapsLockCapsLockキー
ControlCtrlキー
MetaWindowsキー/Commandキー
NumLockNumLockキー
ScrollLockScrollLockキー
ShiftShiftキー

サンプルコード

それでは、getModifierState()メソッドを使った具体的な例を見てみましょう。次のサンプルでは、パスワード入力中にCapsLockキーがオンになっているかどうかをリアルタイムで判定し、その結果を画面に表示します。

<!DOCTYPE html>
<html>
<head>
<title>KeyboardEvent getModifierState()</title>
<style>
    form {
       width:70%;
       margin: 0 auto;
       text-align: center;
    }
    * {
       padding: 2px;
       margin:5px;
    }
    input[type="button"] {
       border-radius: 10px;
    }
</style>
</head>
<body>
<form>
<fieldset>
<legend>KeyboardEvent getModifierState( )</legend>
<label>パスワード:
<input type="password" id="textSelect" onkeydown="getEventState(event)" autocomplete="off">
</label>
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
    window.addEventListener('keydown', function(event) {
       console.log('CapsLock', event.getModifierState("CapsLock"));
    });
    var divDisplay = document.getElementById("divDisplay");
    var textSelect = document.getElementById("textSelect");
    divDisplay.textContent = '入力中にCapsLockキーを押してみてください';
    function getEventState(InputEvent) {
       if(InputEvent.getModifierState("CapsLock"))
          divDisplay.textContent = 'CapsLockがオンになっています。ご注意ください!';
       else
          divDisplay.textContent = 'CapsLockはオフになっています。';
    }
</script>
</body>
</html>

実行結果

このコードをブラウザで実行すると、次のような表示になります。

CapsLockキーを「ON」にする前 −

HTML DOM KeyboardEventのgetModifierState()メソッドの使い方を解説

CapsLockキーを「ON」にした後 −

HTML DOM KeyboardEventのgetModifierState()メソッドの使い方を解説

CapsLockキーを「OFF」に戻した後 −

HTML DOM KeyboardEventのgetModifierState()メソッドの使い方を解説

まとめ

getModifierState()メソッドを使えば、ShiftやCtrlといった修飾キーはもちろん、CapsLockやNumLockなどロック系キーの状態も簡単に取得できます。Chrome・Firefox・Safari・Edgeなど主要なブラウザでサポートされており、keydownイベントだけでなくkeyupイベントでも同様に利用できるため、フォーム入力の補助機能などを実装する際にぜひ活用してみてください。

  1. HTML DOMのhasAttributes()メソッドとは?構文・使い方・サンプルコードを解説

    HTML DOMのhasAttributes()メソッドは、ある要素が属性(attribute)を1つでも持っているかどうかを判定するためのメソッドです。要素が属性を保持している場合はtrueを返し、1つも属性を持っていない場合はfalseを返します。また、このメソッドを要素ノード以外のノードに対して呼び出した場合、戻り値は常にfalseになるという特徴があります。 構文 hasAttributes()メソッドの基本構文は以下のとおりです。 node.hasAttributes() 引数は不要で、対象となるノードに対して直接呼び出すだけで、真偽値(Boolean)が返されます。 使用例 ここで

  2. HTML DOMのfocus()メソッドとは?基本構文と使い方を実例付きで解説

    HTML DOMのfocus()メソッドは、指定したHTML要素にフォーカスを設定するために使用されるメソッドです。ただし、すべてのHTML要素にフォーカスを適用できるわけではありません。たとえば、<p>タグのようにフォーカスを受け付けない要素も存在します。また、要素からフォーカスを解除したい場合は、blur()メソッドを使用します。 focus()メソッドの主な活用シーン ページ読み込み時やフォーム表示時に、最初の入力欄へ自動的にカーソルを合わせる バリデーションエラーが発生した際に、該当する入力フィールドへフォーカスを移動する モーダルウィンドウを開いたときに、特定のボタンや