The CustomEvent() constructor creates a new CustomEvent.
Syntax
event = new CustomEvent(typeArg, customEventInit);
Parameters
typeArg- A
DOMStringrepresenting the name of the event. customEventInitOptional- A
CustomEventInitdictionary, having the following fields:"detail", optional and defaulting tonull, of type any, that is an event-dependent value associated with the event.
The
CustomEventInitdictionary also accepts fields from theEventInitdictionary.
Return value
A new CustomEvent object of the specified type, with any other properties configured according to the CustomEventInit dictionary (if one was provided).
Example
// add an appropriate event listener
obj.addEventListener("cat", function(e) { process(e.detail) });
// create and dispatch the event
var event = new CustomEvent("cat", {
detail: {
hazcheeseburger: true
}
});
obj.dispatchEvent(event);
Additional examples can be found at Creating and triggering events.
Specifications
| Specification | Status | Comment |
|---|---|---|
| DOM The definition of 'CustomEvent()' in that specification. |
Living Standard | Initial definition. |
Browser compatibility
| Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| Basic support | 15 | Yes | 11 | No | 11.6 | No1 |
| Feature | Android webview | Chrome for Android | Edge mobile | Firefox for Android | Opera Android | iOS Safari | Samsung Internet |
|---|---|---|---|---|---|---|---|
| Basic support | Yes | Yes | Yes | Yes | Yes | No1 | ? |
1. Available on Nightly build (535.2)
Polyfill
You can polyfill the CustomEvent() constructor functionality in Internet Explorer 9 and higher with the following code:
(function () {
if ( typeof window.CustomEvent === "function" ) return false;
function CustomEvent ( event, params ) {
params = params || { bubbles: false, cancelable: false, detail: undefined };
var evt = document.createEvent( 'CustomEvent' );
evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );
return evt;
}
CustomEvent.prototype = window.Event.prototype;
window.CustomEvent = CustomEvent;
})();
Internet Explorer >= 9 adds a CustomEvent object to the window, but with correct implementations, this is a function.