Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
* Some parts of this feature may have varying levels of support.
Объекты KeyboardEvent описывают работу пользователя с клавиатурой. Каждое событие описывает клавишу; тип события (keydown, keypress или keyup) определяет произведённый тип действия.
Примечание: KeyboardEvent сообщит только о том, что на клавише произошло событие. Когда вам нужно обрабатывать ввод текста, то вместо него используйте "HTML5 input"-событие. Например, если пользователь вводит текст рукописным способом, предположим с планшета, то события клавиш могут не возникать.
Создаёт объект KeyboardEvent.
Этот интерфейс также наследует методы от своих родителей: UIEvent и Event.
KeyboardEvent.getModifierState()Возвращает Boolean, показывающий, что использовалась клавиша-модификатор, такая как
Alt
,
Shift
,
Ctrl
или
Meta
, которая была нажата, когда создалось событие.
KeyboardEvent.initKeyEvent()Инициализирует объект KeyboardEvent. Этот метод реализован только в движке Gecko (остальные использовали метод KeyboardEvent.initKeyboardEvent()), и он не должен в дальнейшем использоваться. Новый стандартный способ - это использование конструктора KeyboardEvent().
KeyboardEvent.initKeyboardEvent()Инициализирует объект KeyboardEvent. Этот метод никогда не был реализован в движке Gecko (вместо него использовался KeyboardEvent.initKeyEvent()), и он не должен в дальнейшем использоваться. Новый стандартный способ - это использование конструктора KeyboardEvent().
Этот интерфейс также наследует свойства от своих родителей: UIEvent and Event.
KeyboardEvent.altKey Только для чтенияВозвращает Boolean, которое true, если клавиша
Alt
(
Option
или
⌥
в OS X) была активна, когда возникло событие.
KeyboardEvent.char Только для чтенияВозвращает DOMString, представляющий символьное значение клавиши. Если клавиша соответствует печатному символу, то это значение будет непустой Unicode-строкой, содержащей этот символ. Если клавиша не имеет печатного представления, то значение будет пустой строкой.
KeyboardEvent.charCode Только для чтенияВозвращает Number, представляющий Unicode-номер клавиши; этот атрибут использовался только с событием keypress. Для клавиш, чей char-атрибут содержит несколько символов, то значением этого атрибута будет Unicode-значение первого символа. В Firefox 26 этот атрибут возвращал коды для печатных символов.
KeyboardEvent.code Только для чтенияВозвращает DOMString с кодом клавиши, представленного события.
KeyboardEvent.ctrlKey Только для чтенияВозвращает Boolean, которое true, если клавиша
Ctrl
была активна, когда возникло событие.
KeyboardEvent.isComposing Только для чтенияВозвращает Boolean, которое true, если событие возникло между "после-compositionstart" и "до-compositionend".
KeyboardEvent.key Только для чтенияВозвращает DOMString, представляющее значение клавиши, на которой возникло событие.
KeyboardEvent.keyCode Только для чтенияВозвращает Number, представляющее системный и зависящий от конкретной реализации числовой код, идентифицирующий немодифицированное значение нажатой клавиши.
KeyboardEvent.keyIdentifier Только для чтенияЭто свойство нестандартное, и его использование не рекомендуется в пользу KeyboardEvent.key. Это часть устаревшего "DOM Level 3 Events".
KeyboardEvent.keyLocation Только для чтенияЭто нестандартный нерекомендуемый синоним для KeyboardEvent.location. Это часть устаревшего "DOM Level 3 Events".
KeyboardEvent.locale Только для чтенияВозвращает DOMString, представляет строку-локаль, которая показывает текущую конфигурацию локали клавиатуры. Это может быть пустая строка, если браузер или устройство не имеют понятия о локали клавиатуры.
KeyboardEvent.location Только для чтенияВозвращает Number, представляющее расположение клавиши на клавиатуре или другом устройстве ввода.
KeyboardEvent.metaKey Только для чтенияВозвращает Boolean, которое true, если клавиша
Meta
(на клавиатуре Mac - клавиша
⌘ Command
; на Windows-клавиатуре - клавиша "Windows"
⊞
) была активна, когда возникло событие.
KeyboardEvent.repeat Только для чтенияВозвращает Boolean, которое true, если клавиша была нажата до тех пор, пока её ввод не начал автоматически повторяться.
KeyboardEvent.shiftKey Только для чтенияВозвращает Boolean, которое true, если клавиша
Shift
была активна, когда возникло событие.
KeyboardEvent.which Только для чтенияВозвращает Number, представляющее зависящее от конкретной реализации значение системного кода нажатой клавиши, который представляет собой немодифицируемое значение; это обычно то же, что свойство keyCode.
Особенности событий keydown, keypress и keyup. Для большинства клавиш Gecko обрабатывает последовательность событий так:
Некоторые клавиши переключают подсветку индикаторов, такие как Caps Lock, Num Lock и Scroll Lock. На Windows и Linux эти клавиши создают только лишь события keydown и keyup.
Примечание: В Linux Firefox 12 и более ранних также обрабатывается событие keypress.
Но в связи с ограничениями Mac OS X модель событий клавиши Caps Lock включает в себя только keydown. События Num Lock поддерживались на старых ноутбуках (2007 года и старше), но затем Mac OS X их перестала поддерживать, даже на внешних клавиатурах. На совсем старых MacBooks клавиша Num Lock вообще не генерирует никаких событий. Движок Gecko не поддерживает клавишу Scroll Lock, если это внешняя клавиатура с клавишей F14. В некоторых старых версиях Firefox эта клавиша генерирует событие keypress; это являлось нестабильным поведением и описано в Firefox bug 602812.
Когда клавиша нажата и удерживается, то начинается автоповтор. Результатом этого будет последовательность событий аналогичная следующей:
Это то, что должно произойти в соответствии со спецификацией DOM Level 3. Однако, есть несколько предостережений относительно этого, описанных ниже.
В некоторых GTK-средах автоповтор обрабатывается автоматически нативными функциями как событие key-up, и у Gecko нет способа отличить серию одиночных нажатий от автоповтора. На таких платформах автоповтор генерирует следующую последовательность событий:
В этих средах, к сожалению, нет возможности сказать веб-контенту, произошёл автоповтор или клавиша была нажата несколько раз.
До Gecko 5.0 обработка событий клавиатуры была различна на разных платформах.
WindowsПоведение автоповтора такое же как в Gecko 4.0 и более поздних.
MacПосле первого события keydown только отправляются события keypress до тех пор, пока не произойдёт событие keyup; внутриинтервальные события keydown не отправляются.
LinuxПоведение событий зависит от конкретной платформы. Они могут иметь как Windows-тип и Mac-тип, так и свои собственные модели поведения.
| UI Events # interface-keyboardevent |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 27 окт. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.