键盘

可用性有限

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

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

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

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

有效代码值的列表可以在 UI 事件 KeyboardEvent 代码值 规范中找到。

EventTarget Keyboard

实例属性

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

实例方法

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

Keyboard.getLayoutMap() 实验性

返回一个 Promise,该 Promise 解析为 KeyboardLayoutMap 的一个实例,它是一个类似于映射的对象,其中包含用于检索与特定物理键关联的字符串的函数。

Keyboard.lock() 实验性

在启用对物理键盘上任何或所有按键的按键捕获后返回一个 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。