CustomEvent 事件是由程序创建的,可以有任意自定义功能的事件。
Note: 此特性在 Web Worker 中可用。
构造函数
CustomEvent()  创建一个自定义事件。
属性
CustomEvent.detail 只读  Any data passed when initializing the event.
This interface inherits properties from its parent, Event:
- Event.bubblesRead only
- A Boolean indicating whether the event bubbles up through the DOM or not.
- Event.cancelBubble
- A historical alias to Event.stopPropagation(). Setting its value totruebefore returning from an event handler prevents propagation of the event.
- Event.cancelableRead only
- A Boolean indicating whether the event is cancelable.
- Event.composedRead only
- A Boolean value indicating whether or not the event can bubble across the boundary between the shadow DOM and the regular DOM.
- Event.currentTargetRead only
- A reference to the currently registered target for the event. This is the object to which the event is currently slated to be sent; it's possible this has been changed along the way through retargeting.
- Event.deepPath
- An Arrayof DOMNodes through which the event has bubbled.
- Event.defaultPreventedRead only
- Indicates whether or not event.preventDefault()has been called on the event.
- Event.eventPhaseRead only
- Indicates which phase of the event flow is being processed.
- Event.explicitOriginalTargetRead only
- The explicit original target of the event (Mozilla-specific).
- Event.originalTargetRead only
- The original target of the event, before any retargetings (Mozilla-specific).
- Event.returnValue
- A non-standard alternative (from old versions of Microsoft Internet Explorer) to Event.preventDefault()andEvent.defaultPrevented.
- Event.scopedRead only
- A Booleanindicating whether the given event will bubble across through the shadow root into the standard DOM. This property has been renamed tocomposed.
- Event.srcElement
- A non-standard alias (from old versions of Microsoft Internet Explorer) for Event.target.
- Event.targetRead only
- A reference to the target to which the event was originally dispatched.
- Event.timeStampRead only
- The time at which the event was created, in milliseconds. By specification, this value is time since epoch, but in reality browsers' definitions vary; in addition, work is underway to change this to be a DOMHighResTimeStampinstead.
- Event.typeRead only
- The name of the event (case-insensitive).
- Event.isTrustedRead only
- Indicates whether or not the event was initiated by the browser (after a user click for instance) or by a script (using an event creation method, like event.initEvent)
方法
方法概述
| void initCustomEvent(in DOMString type, in boolean canBubble, in boolean cancelable, in any detail); | 
属性
| Attribute | Type | Description | 
|---|---|---|
| detail | any | 当事件初始化时传递的数据 | 
方法
initCustomEvent()
初始化一个自定义事件的方式和初始化一个标准DOM事件的方式非常相似.
void initCustomEvent( in DOMString type, in boolean canBubble, in boolean cancelable, in any detail );
参数
- type
- 事件的类型名称.
- canBubble
- 一个布尔值,表明该事件是否会冒泡.
- cancelable
- 一个布尔值,表明该事件是否可以被取消.
- detail
- 当事件初始化时传递的数据.
构造函数
DOM4 规范 添加了对 CustomEvent 构造函数的支持.
CustomEvent( DOMString type, optional CustomEventInit eventInitDict )
参数
- type
- 事件的类型名称.
- eventInitDict
- 一个对象,提供了事件的配置信息.查看CustomEventInit了解更多详情.
CustomEventInit
- bubbles
- 一个布尔值,表明该事件是否会冒泡.
- cancelable
- 一个布尔值,表明该事件是否可以被取消.
- detail
- 当事件初始化时传递的数据.
CustomEvent用法示例
// 添加一个适当的事件监听器
obj.addEventListener("cat", function(e) { process(e.detail) })
// 创建并分发事件
var event = new CustomEvent("cat", {"detail":{"hazcheeseburger":true}})
obj.dispatchEvent(event)
浏览器兼容性
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|
| Basic support | (Yes) | 6 | 9 | ? | (Yes) (533.3) | 
| CustomEvent()constructor | 15 | 11 | ? | 11.60 | Nightly build (535.2) | 
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | 
|---|---|---|---|---|---|
| Basic support | ? | ? | ? | ? | ? | 
Gecko备注
该事件由nsIDOMCustomEvent接口定义,此接口继承于nsIDOMEvent接口.