键盘:lock() 方法
lock()
方法是 Keyboard
接口的方法,它在启用捕获物理键盘上任何或所有按键的按键时返回一个 Promise
。此方法只能捕获底层操作系统授予访问权限的按键。
如果多次调用 lock()
,则仅锁定最近一次调用中指定的键码。先前对 lock()
的任何调用锁定的键都将解锁。
语法
js
lock()
lock(keyCodes)
参数
keyCodes
可选-
一个或多个要锁定的键码的
Array
。如果未提供任何键码,则将锁定所有键。有效代码值的列表可以在 UI 事件 KeyboardEvent 代码值 规范中找到。
返回值
异常
AbortError
DOMException
-
如果在当前调用完成之前进行了新的
lock()
调用,则抛出此异常。 InvalidAccessError
DOMException
-
如果
keyCodes
中的任何键不是有效的 键码属性值,则抛出此异常。 InvalidStateError
DOMException
-
如果
lock()
未在活动顶级浏览上下文环境中调用,则抛出此异常。
安全性
短暂的用户激活 是必需的。用户必须与页面或 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 |
浏览器兼容性
BCD 表仅在浏览器中加载