Клавиатура
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология. Подробнее
Перед использованием в производстве внимательно проверьте таблицу совместимости с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Интерфейс Keyboard API клавиатуры предоставляет функции, которые извлекают карты раскладок клавиатуры и включают/выключают захват нажатий клавиш с физической клавиатуры.
Список допустимых значений кодов см. в спецификации UI Events KeyboardEvent code Values.
Свойства экземпляра
Также наследует свойства от своего родительского интерфейса EventTarget.
Методы экземпляра
Также наследует методы от своего родительского интерфейса EventTarget.
-
Keyboard.getLayoutMap()Экспериментально -
Возвращает
Promise, который разрешается экземпляромKeyboardLayoutMap, который представляет собой объект типа "карта" с функциями для извлечения строк, связанных с определенными физическими клавишами. -
Keyboard.lock()Экспериментально -
Возвращает
Promise, который разрешается после включения захвата нажатий клавиш для любой или всех клавиш на физической клавиатуре. -
Keyboard.unlock()Экспериментально -
Разблокирует все клавиши, захваченные методом
lock(), и возвращает результат синхронно.
Пример
Сопоставление клавиш
Следующий пример демонстрирует, как получить строку, специфичную для расположения или раскладки, связанную с клавишей, соответствующей клавише 'W' на английской клавиатуре QWERTY.
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.
}
Захват клавиш
В следующем примере захватываются клавиши W, A, S и D, вызывая lock() со списком, содержащим значение атрибута кода клавиши для каждой из этих клавиш:
navigator.keyboard.lock(["KeyW", "KeyA", "KeyS", "KeyD"]);
Это захватывает эти клавиши независимо от используемых модификаторов при нажатии. Предполагая стандартную раскладку QWERTY США, регистрация KeyW гарантирует, что W, Shift+W, Control+W, Control+Shift+W и все другие комбинации нажатий клавиш с W будут отправлены в приложение. То же самое относится к KeyA, KeyS, и KeyD.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
Keyboard |
68 | 79 | Нет | 55 | Нет | 68 | Нет | 48 | Нет | 10.0 | 68 |
getLayoutMap |
69 | 79 | Нет | 56 | Нет | 69 | Нет | 48 | Нет | 10.0 | 69 |
lock |
68 | 79 | Нет | 55 | Нет | 68 | Нет | 48 | Нет | 10.0 | 68 |
unlock |
68 | 79 | Нет | 55 | Нет | 68 | Нет | 48 | Нет | 10.0 | 68 |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Keyboard