Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

The KeyboardEvent.initKeyboardEvent() method initializes the attributes of a keyboard event object. This method was introduced in draft of DOM Level 3 Events, but deprecated in newer draft. Gecko won't support this feature since implementing this method as experimental broke existing web apps (see bug 999645). Web applications should use constructor instead of this if it's available.


kbdEvent.initKeyboardEvent(typeArg, canBubbleArg, cancelableArg,
                           viewArg, charArg, keyArg,
                           locationArg, modifiersListArg, repeat)



The type of keyboard event; this will be one of keydown, keypress, or keyup.


Whether or not the event can bubble.


Whether or not the event can be canceled.


The WindowProxy it is associated to.


The value of the key attribute.


The value of the location attribute.


Whether the Control key modifier is active.


Whether the Alt key modifier is active.


Whether the Shift key modifier is active.


Whether the Meta key modifier is active.


UI Events
# dom-keyboardevent-initkeyboardevent

The KeyboardEvent interface specification went through numerous draft versions, first under DOM Events Level 2 where it was dropped as no consensus arose, then under DOM Events Level 3. This led to the implementation of non-standard initialization methods, the early DOM Events Level 2 version, KeyboardEvent.initKeyEvent() by Gecko browsers and the early DOM Events Level 3 version, KeyboardEvent.initKeyboardEvent() by others. Both have been superseded by the modern usage of a constructor: KeyboardEvent().

Browser compatibility

BCD tables only load in the browser