このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Keyboard: lock() メソッド

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

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"]);

仕様書

仕様書
Keyboard Lock
# h-keyboard-lock

ブラウザーの互換性