--- title: KeyboardEvent.initKeyEvent() slug: Web/API/KeyboardEvent/initKeyEvent tags: - API - DOM - KeyboardEvent - Method - 参考 translation_of: Web/API/KeyboardEvent/initKeyEvent ---

 

{{ ApiRef("DOM Events") }}{{non-standard_header}}{{deprecated_header}}

KeyboardEvent.initKeyEvent方法用于初始化使用{{domxref("document.createEvent")}}("KeyboardEvent")创建的事件的值。 以这种方式初始化的事件必须使用{{domxref("document.createEvent")}}("KeyboardEvent")方法创建。 在调度之前,必须调用initKeyEvent来设置事件。

不要再使用这个方法,而是使用{{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}}构造函数。
该方法基于{{SpecName("DOM2 Events")}}的早期草案,并在基于Gecko的浏览器中实现; 其他浏览器基于{{SpecName("DOM3 Events")}}的早期草稿实现{{domxref("KeyboardEvent.initKeyboardEvent")}}。 将现代构造函数结构视为构建事件的唯一跨浏览器方式。

Syntax

event.initKeyEvent (type, bubbles, cancelable, viewArg,
                    ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
                    keyCodeArg, charCodeArg)

Parameters

type
是表示事件类型的{{domxref("DOMString")}}。
bubbles
是{{jsxref("Boolean")}}指示事件是否应该通过事件链冒泡(请参阅冒泡)。
cancelable
是{{jsxref("Boolean")}}我指出事件是否可以被取消(见可取消)。
viewArg
指定{{domxref("UIEvent.view")}}; 此值可能为空。
ctrlKeyArg
如果要生成的虚拟键是包含Ctrl键的键的组合,则为{{jsxref("Boolean")}}
altKeyArg
如果要生成的虚拟键是包含Alt键的键的组合,则为{{jsxref("Boolean")}}。
shiftKeyArg
A {{jsxref("Boolean")}}如果要生成的虚拟键是包含Shift键的键组合,则返回true。
metaKeyArg
是{{jsxref("Boolean")}}如果要生成的虚拟键是包含Meta键的键的组合,则为true。
keyCodeArg
是一个无符号长整型,表示被按下的键的虚拟键码值,否则为0.请参阅{{domxref("KeyboardEvent.keyCode")}}以获取键码列表。
charCodeArg
是一个无符号长整型,表示与按下的键相关的Unicode字符,否则为0。

Example

var event = document.createEvent('KeyboardEvent'); // create a key event
// define the event
event.initKeyEvent("keypress",       // typeArg,
                   true,             // canBubbleArg,
                   true,             // cancelableArg,
                   null,             // viewArg,  Specifies UIEvent.view. This value may be null.
                   false,            // ctrlKeyArg,
                   false,            // altKeyArg,
                   false,            // shiftKeyArg,
                   false,            // metaKeyArg,
                    9,               // keyCodeArg,
                    0);              // charCodeArg);

document.getElementById('blah').dispatchEvent(event);

Specification

键盘事件的这种实现基于DOM 2事件早期版本中的关键事件规范,后来从该规范中删除。

initKeyEvent是DOM Level 3事件的当前Gecko等价物(最初起草并且不推荐使用{{domxref("KeyboardEvent.KeyboardEvent", "KeyboardEvent()")}} {{domxref("Keyboard.initKeyboardEvent()")}}方法与以下参数:

typeArg of type DOMString
canBubbleArg of type boolean
cancelableArg of type boolean
viewArg of type views::AbstractView
keyIdentifierArg of type DOMString
keyLocationArg of type unsigned long
modifiersList of type DOMString);