События клавиатуры зависят от устройства, то есть зависят от возможностей устройств ввода и от того, как они отображаются в операционных системах.
Тип события клавиатуры — keydown
Тип события клавиатуры | keydown |
---|---|
Интерфейс | KeyboardEvent |
Синх / Асин | Синхронный |
Всплытие | Да |
Надежные цели | Element |
Отменяемый | Да |
Сдержанный | Да |
Действие по умолчанию | Варьируется: события «перед входом» beforeinput и «вход» input; запустить систему компоновки текста; blur и focus события; событие «нажатия клавиши» keypress (если поддерживается); активационное поведение; другое событие |
Контекст (доверенные события) | Event.target : фокусируемый элемент, обрабатывающий ключевое событие, или если элемент не сфокусирован, то элемент body, если доступен, в противном случае корневой элемент |
UIEvent.view : Window | |
UIEvent.detail : 0 | |
KeyboardEvent.key : значение ключа нажатой клавиши. | |
KeyboardEvent.code : значение кода, связанное с физическим расположением клавиши на клавиатуре. | |
KeyboardEvent.location : расположение ключа на устройстве. | |
KeyboardEvent.altKey : true, если модификатор Alt был активен, иначе false | |
KeyboardEvent.shiftKey : true, если модификатор Shift был активен, иначе false | |
KeyboardEvent.ctrlKey : true, если модификатор Control был активен, иначе false | |
KeyboardEvent.metaKey : true, если Meta-модификатор был активен, иначе false | |
KeyboardEvent.repeat : true, если клавиша была нажата достаточно долго, чтобы вызвать ее повторение, иначе false | |
KeyboardEvent.isComposing : true, если ключевое событие происходит как часть сеанса композиции, иначе false |
Пользовательский агент ДОЛЖЕН отправить это событие, когда нажата клавиша. Тип события keydown зависит от устройства и зависит от возможностей устройств ввода и их отображения в операционной системе. Этот тип события ДОЛЖЕН быть сгенерирован после сопоставления клавиш. Этот тип события ДОЛЖЕН быть отправлен до событий beforeinput, input и keyup, связанных с одним и тем же ключом.
Действие по умолчанию для события keydown зависит от ключа:
- Если ключ связан с символом, действие по умолчанию ДОЛЖНО состоять в том, чтобы отправить событие beforeinput, за которым следует событие input. В случае, когда ключ, который связан с несколькими символами (например, с макросом или определенными последовательностями мертвых клавиш), действием по умолчанию ДОЛЖНО быть отправка одного набора событий beforeinput / input для каждого символа
- Если ключ связан с системой компоновки текста, действие по умолчанию ДОЛЖНО состоять в том, чтобы запустить эту систему
- Если клавиша является клавишей Tab, действие по умолчанию ДОЛЖНО состоять в том, чтобы сместить фокус документа с текущего в фокусе элемента (если он есть) на новый фокусированный элемент, как описано в «Типах событий фокуса»
- Если ключом является Enter или » » клавиша, а текущий фокус находится на элементе, изменяющем состояние, действие по умолчанию ДОЛЖНО быть отправлять событие click и событие DOMActivate, если этот тип события поддерживается агентом пользователя (см. §3.5 Триггеры активации и поведение для более подробной информации)
Если это событие отменено, связанные типы событий НЕ ДОЛЖНЫ отправляться, и связанные действия НЕ ДОЛЖНЫ выполняться.
События keydown и keyup традиционно связаны с обнаружением любой клавиши, а не только той, которая дает значение символа.
Тип события клавиатуры — keyup
Тип события клавиатуры | keyup |
---|---|
Интерфейс | KeyboardEvent |
Синх / Асин | Синхронный |
Всплытие | Да |
Надежные цели | Element |
Отменяемый | Да |
Сдержанный | Да |
Действие по умолчанию | Не определено |
Контекст (доверенные события) | Event.target : фокусируемый элемент, обрабатывающий ключевое событие, или если элемент не сфокусирован, то элемент body, если доступен, в противном случае корневой элемент |
UIEvent.view : Window | |
UIEvent.detail : 0 | |
KeyboardEvent.key : значение ключа нажатой клавиши. | |
KeyboardEvent.code : значение кода, связанное с физическим расположением клавиши на клавиатуре. | |
KeyboardEvent.location : расположение ключа на устройстве. | |
KeyboardEvent.altKey : true, если модификатор Alt был активен, иначе false | |
KeyboardEvent.shiftKey : true, если модификатор Shift был активен, иначе false | |
KeyboardEvent.ctrlKey : true, если модификатор Control был активен, иначе false | |
KeyboardEvent.metaKey : true, если Meta-модификатор был активен, иначе false | |
KeyboardEvent.repeat : true, если клавиша была нажата достаточно долго, чтобы вызвать ее повторение, иначе false | |
KeyboardEvent.isComposing : true, если ключевое событие происходит как часть сеанса композиции, иначе false |
Пользовательский агент ДОЛЖЕН отправлять это событие при отпускании клавиши. Тип события keyup зависит от устройства и зависит от возможностей устройств ввода и их отображения в операционной системе. Этот тип события ДОЛЖЕН быть сгенерирован после сопоставления клавиш. Этот тип события ДОЛЖЕН быть отправлен после событий keydown, beforeinput и input, связанных с одним и тем же ключом.
События keydown и keyup традиционно связаны с обнаружением любой клавиши, а не только той, которая дает значение символа.
Полная версия документа на русском языке
UI Events | События пользовательского интерфейса