键盘

可用性有限

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

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

Keyboard 接口是 Keyboard API 的一部分,提供检索键盘布局映射以及切换物理键盘按键捕获的功能。

有效代码值的列表可在 UI Events KeyboardEvent code Values 规范中找到。

EventTarget Keyboard

实例属性

还继承了其父接口 EventTarget 的属性。

实例方法

还继承了其父接口 EventTarget 的方法。

Keyboard.getLayoutMap() 实验性

返回一个 Promise,该 Promise 解析为一个 KeyboardLayoutMap 实例,这是一个类似 Map 的对象,提供用于检索与特定物理按键关联的字符串的函数。

Keyboard.lock() 实验性

返回一个 Promise,该 Promise 在启用对物理键盘上任意或所有按键的按键捕获后解析。

Keyboard.unlock() 实验性

解锁由 lock() 方法捕获的所有按键,并同步返回。

示例

键盘映射

以下示例演示了如何获取与英文 QWERTY 键盘上 'W' 键对应的按键的位置或布局特定的字符串。

js
if (navigator.keyboard) {
  const keyboard = navigator.keyboard;
  keyboard.getLayoutMap().then((keyboardLayoutMap) => {
    const upKey = keyboardLayoutMap.get("KeyW");
    window.alert(`Press ${upKey} to move up.`);
  });
} else {
  // Do something else.
}

键盘锁定

以下示例捕获 WASD 键,并使用包含这些按键的键码属性值列表调用 lock()

js
navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);

这将捕获这些按键,而不管按键时使用了什么修饰符。假设使用标准的美国 QWERTY 布局,注册 KeyW 可确保 WShift+WControl+WControl+Shift+W 以及与 W 组合的所有其他按键修饰符组合都会发送到应用程序。对于 KeyAKeySKeyD 也是如此。

规范

规范
键盘映射
# keyboard-interface
键盘锁定
# keyboard-interface

浏览器兼容性