Keyboard: lock() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

lock()Keyboard インターフェイスのメソッドで、物理キーボード上の任意のキーまたはすべてのキーのキー押下のキャプチャを有効にした後、プロミス (Promise) を返します。このメソッドでキャプチャできるのは、基本的なオペレーティングシステムがアクセスを許可しているキーだけです。

lock() を複数回呼び出すと、最後に呼び出したキーコードだけがロックされます。 前に lock() を呼び出したときにロックされたキーはロック解除されます。

構文

js
lock()
lock(keyCodes)

引数

keyCodes 省略可

ロックする 1 つ以上のキーコードの配列 (Array)。キーコードが指定されなかった場合、すべてのキーがロックされます。有効なコード値のリストは、 UI Events KeyboardEvent code Values 仕様にあります。

返値

ロックが成功したときに undefined で解決される Promise です。

例外

AbortError DOMException

現在の呼び出しが終了する前に lock() を新たに呼び出した場合に発生します。

InvalidAccessError DOMException

keyCodes 内のキーが有効なキーコード属性値でない場合に発生します。

InvalidStateError DOMException

アクティブな最上位の閲覧コンテキストで lock() が呼び出されなかった場合に発生します。

セキュリティ

一時的なユーザーによる有効化が必要です。この機能が動作するためには、ユーザーがページや UI 要素を操作する必要があります。

すべてのキーのキャプチャ

次の例では、すべてのキー入力をキャプチャします。

js
navigator.keyboard.lock();

特定のキーのキャプチャ

以下の例では、"W"、"A"、"S"、"D" キーをキャプチャしています。キーを押したときにどの修飾キーが使われたかに関係なく、これらのキーをキャプチャします。標準的な US QWERTY レイアウトを想定すると、 "KeyW" を登録することで、"W"、Shift+"W"、Control+"W"、Control+Shift+"W"、その他すべての修飾キーと "W" の組み合わせがアプリに送信されるようになります。 KeyA""KeyS""KeyD" についても同様です。

js
navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);

仕様書

Specification
Keyboard Lock
# h-keyboard-lock

ブラウザーの互換性

BCD tables only load in the browser