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 |
浏览器兼容性
加载中…