键盘:lock() 方法

可用性有限

此功能不是基线功能,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器 中。

lock() 方法是 Keyboard 接口的方法,它在启用捕获物理键盘上任何或所有按键的按键时返回一个 Promise。此方法只能捕获底层操作系统授予访问权限的按键。

如果多次调用 lock(),则仅锁定最近一次调用中指定的键码。先前对 lock() 的任何调用锁定的键都将解锁。

语法

js
lock()
lock(keyCodes)

参数

keyCodes 可选

一个或多个要锁定的键码的 Array。如果未提供任何键码,则将锁定所有键。有效代码值的列表可以在 UI 事件 KeyboardEvent 代码值 规范中找到。

返回值

一个 Promise,当锁定成功时,解析为 undefined

异常

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 表仅在浏览器中加载