--- 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")}}。 将现代构造函数结构视为构建事件的唯一跨浏览器方式。
event.initKeyEvent (type, bubbles, cancelable, viewArg,
ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
keyCodeArg, charCodeArg)
typebubblescancelableviewArgctrlKeyArgaltKeyArg如果要生成的虚拟键是包含Alt键的键的组合,则为{{jsxref("Boolean")}}。shiftKeyArgmetaKeyArg是{{jsxref("Boolean")}}如果要生成的虚拟键是包含Meta键的键的组合,则为true。keyCodeArgcharCodeArgvar 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);
键盘事件的这种实现基于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);