files/en-us/web/api/customevent/index.md
{{APIRef("DOM")}}{{AvailableInWorkers}}
The CustomEvent interface can be used to attach custom data to an event generated by an application.
As an alternative to CustomEvent, you can subclass the Event interface to add custom data and behavior.
[!NOTE] If used to attempt to communicate between a web extension content script and a web page script, a non-string
detailproperty throws with "Permission denied to access property" in Firefox. To avoid this issue clone the object. See Share objects with page scripts for more information.
{{InheritanceDiagram}}
CustomEvent.This interface inherits properties from its parent, {{domxref("Event")}}.
This interface inherits methods from its parent, {{domxref("Event")}}.
CustomEvent object. If the event has already been dispatched, this method does nothing.{{Specifications}}
{{Compat}}