Просмотр событий клавиатуры
Событий: 0События появятся здесь, новые сверху.
События появятся здесь, новые сверху.
KeyboardEvent описывает нажатие тремя способами. На французской клавиатуре AZERTY та же физическая клавиша даёт другое значение key, тот же code и keyCode, который следует за буквой.
keyСимвол, который печатает раскладка, или имя клавиши (Enter, Shift)qacodeФизическая клавиша, при любой раскладкеKeyQKeyQkeyCodeЧисловой код, устарел, но всё ещё отправляется8165Свойство location говорит, с какой стороны стоит парная клавиша или что клавиша на цифровом блоке.
Когда включён китайский, японский или корейский метод ввода, клавиши сначала забирает он. Страница видит key «Process» и keyCode 229, а текст приходит в событиях composition. Набор ni для китайского слова:
keydownkey «Process» · keyCode 229compositionstartМетод ввода начинает словоcompositionupdatedata n, потом nikeydownПробел выбирает вариантcompositionenddata – выбранное словоinputinputType insertCompositionTextКаждое событие передаёт состояние модификаторов, зажатых в этот момент. getModifierState() показывает ещё и состояние клавиш с фиксацией.
ShiftshiftKeyControlctrlKeyAltaltKeyMetametaKey (Windows или Command на Mac)CapsLockСостояние переключателя, а не нажата ли клавишаNumLockСостояние переключателя, на Mac часто неизвестноAltGraphПравый Alt во многих европейских раскладкахScrollLockРедко на современных клавиатурахkey – то, что клавиша печатает в текущей раскладке, например a или A. code – физическая клавиша, например KeyA, и он одинаков в любой раскладке. Здесь видны оба для каждого нажатия.
Клавишу обрабатывает метод ввода (IME). key показывает «Process», а текст приходит позже в событиях composition и input. Печатайте в поле, чтобы их увидеть.
keyCode, which и charCode устарели, но браузеры их всё ещё отправляют. Новый код должен читать key или code.
Fn обрабатывает сама клавиатура и не отправляет код клавиши, так что ни одна веб-страница её не получает. А клавиша, нажатая вместе с Fn, например F5 или громкость, видна.
Некоторые сочетания браузер оставляет себе: закрытие вкладки, новая вкладка, новое окно. Запрет действий по умолчанию перехватывает большинство других клавиш, например Tab, F5 или /, но не эти.
Система повторяет зажатую клавишу. Каждый повтор – это keydown с repeat true, а при отпускании приходит один keyup.
Пока зажата Command, браузеры в macOS не отправляют keyup для остальных клавиш, и после отпускания Command он тоже не приходит. Тест клавиатуры Mac →
События обрабатываются только в этом браузере. Код теста их не отправляет, и они стираются, когда вы закрываете страницу. Политика конфиденциальности →