Keyboard: lock() 方法
Keyboard 介面的 lock() 方法返回一個 Promise,該 Promise 在啟用對物理鍵盤上任意或所有按鍵的按鍵捕獲後解析。此方法只能捕獲底層作業系統授予訪問許可權的按鍵。
如果多次呼叫 lock(),則只有最近一次呼叫中指定的按鍵程式碼將被鎖定。先前呼叫 lock() 所鎖定的任何按鍵都將被解鎖。
語法
js
lock()
lock(keyCodes)
引數
keyCodes可選-
一個包含一個或多個要鎖定的按鍵程式碼的
Array。如果未提供按鍵程式碼,則所有按鍵都將被鎖定。有效的程式碼值列表可以在 UI Events KeyboardEvent code Values 規範中找到。
返回值
異常
AbortErrorDOMException-
如果在當前呼叫完成之前進行了新的
lock()呼叫,則會丟擲此異常。 InvalidAccessErrorDOMException-
如果
keyCodes中的任何按鍵不是有效的 按鍵程式碼屬性值,則會丟擲此異常。 InvalidStateErrorDOMException-
如果
lock()不是在活動的頂級瀏覽上下文(top-level browsing context)中呼叫的,則會丟擲此異常。
安全
需要瞬時使用者啟用。使用者必須與頁面或 UI 元素進行互動才能使此功能正常工作。
示例
捕獲所有按鍵
以下示例捕獲所有按鍵。
js
navigator.keyboard.lock();
捕獲特定按鍵
以下示例捕獲“W”、“A”、“S”和“D”這幾個按鍵。它會捕獲這些按鍵,而不管按鍵時使用了什麼修飾符。假設標準的美式 QWERTY 鍵盤佈局,註冊 "KeyW" 可確保“W”、Shift+“W”、Control+“W”、Control+Shift+“W”以及與“W”相關的其他所有按鍵修飾符組合都會發送到應用程式。這同樣適用於 "KeyA"、"KeyS" 和 "KeyD"。
js
navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);
規範
| 規範 |
|---|
| 鍵盤鎖定 # h-keyboard-lock |
瀏覽器相容性
載入中…