Keyboard

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

Keyboard APIKeyboard 接口提供检索键盘布局图和切换从物理键盘捕获按键的功能。

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

EventTarget Keyboard

实例属性

还从其父接口 EventTarget 继承属性。

实例方法

还从其父接口 EventTarget 继承方法。

Keyboard.getLayoutMap() 实验性

返回一个 Promise,兑现 KeyboardLayoutMap 实例,该实例是一个类 map 对象,具有检索与特定物理键关联的字符串的功能。

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(`按 ${upKey} 向上移动。`);
  });
} else {
  // 做点别的事。
}

键盘锁定

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

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

无论按键时使用了哪些修饰键,此操作都会捕获这些键。假设采用标准的美国 QWERTY 布局,注册 KeyW 可确保 WShift+WControl+WControl+Shift+W 以及所有其他带有 W 的修饰键组合都发送到应用。这同样适用于 KeyAKeySKeyD

规范

Specification
Keyboard Map
# keyboard-interface
Keyboard Lock
# keyboard-interface

浏览器兼容性

BCD tables only load in the browser