--- title: Document.createEvent() slug: Web/API/Document/createEvent translation_of: Web/API/Document/createEvent ---
createEvent使用的许多方法, 如 initCustomEvent, 都被废弃了. 请使用 event constructors 来替代.
创建一个指定类型的事件。其返回的对象必须先初始化并可以被传递给 element.dispatchEvent。
var event = document.createEvent(type);
event 就是被创建的 Event 对象.type 是一个字符串,表示要创建的事件类型。事件类型可能包括"UIEvents", "MouseEvents", "MutationEvents", 或者 "HTMLEvents"。请查看 Notes 章节获取详细信息 。// 创建事件
var event = document.createEvent('Event');
// 定义事件名为'build'.
event.initEvent('build', true, true);
// 监听事件
elem.addEventListener('build', function (e) {
// e.target matches elem
}, false);
// 触发对象可以是任何元素或其他事件目标
elem.dispatchEvent(event);
Event type字符串只能传递事件模块中定义的值给CreateEvent。其中一些事件模块是在DOM事件规范定义的,还有些事在其他规范定义的(如SVG),还有一些是Gecko-specific事件。详情见下表。
To-do: 添加事件名称到下表中。
| 事件模块 | 传递给 createEvent的Event type |
事件初始化方法 |
|---|---|---|
| DOM Level 2 Events | ||
| User Interface event module | "UIEvents" |
event.initUIEvent |
| Mouse event module | "MouseEvents" |
event.initMouseEvent |
| Mutation event module | "MutationEvents" |
event.initMutationEvent |
| HTML event module | "HTMLEvents" |
event.initEvent |
| DOM Level 3 Events | ||
| User Interface event module | "UIEvent", "UIEvents" |
event.initUIEvent |
| Mouse event module | "MouseEvent", "MouseEvents" |
event.initMouseEvent |
| Mutation event module | "MutationEvent", "MutationEvents" |
event.initMutationEvent |
| Mutation name event module (not implemented in Gecko as of June 2006) | "MutationNameEvent" |
event.initMutationNameEvent |
| Text event module | "TextEvent" (Gecko also supports "TextEvents") |
event.initTextEvent (not implemented) |
| Keyboard event module | "KeyboardEvent" (Gecko also supports "KeyEvents") |
event.initKeyEvent (Gecko-specific; the DOM 3 Events working draft uses initKeyboardEvent instead) |
| Custom event module {{gecko_minversion_inline("6.0")}} | "CustomEvent" |
event.initCustomEvent |
| Basic events module | "Event" (Gecko also supports "Events") |
event.initEvent |
| SVG 1.1 Scripting | ||
| SVG | "SVGEvents" (Gecko also supports "SVGEvent") |
event.initEvent |
"SVGZoomEvents" (Gecko also supports "SVGZoomEvent") |
event.initUIEvent | |
| Other event types supported by Gecko | ||
| - | "MessageEvent"{{Gecko_minversion_inline(1.9)}} |
event.initMessageEvent |
"MouseScrollEvents", "PopupEvents" |
event.initMouseEvent | |
"PopupBlockedEvents" |
event.initPopupBlockedEvent | |
"XULCommandEvent", "XULCommandEvents" |
event.initCommandEvent | |
| Progress Events | "ProgressEvent" |
{{domxref("ProgressEvent.initProgressEvent()")}}{{deprecated_inline("22.0")}}{{non-standard_inline()}} |
| Animation Events | "AnimationEvent" (or "WebKitAnimationEvent" for WebKit/Blink-based browsers) |
{{domxref("AnimationEvent.initAnimationEvent()")}}{{deprecated_inline("23.0")}}{{non-standard_inline()}} |
| Transition Events | "TransitionEvent" (or "WebKitTransitionEvent" for WebKit/Blink-based browsers) |
{{domxref("TransitionEvent.initTransitionEvent()")}}{{deprecated_inline("23.0")}}{{non-standard_inline()}} |
有些事件可以使用两种事件类型参数,这是因为DOM Level 3 Events将事件类型参数更改为单数形式,但是仍然支持老的复数形式以向后兼容。