The MessageEvent() constructor creates a new MessageEvent object.


new MessageEvent(type)
new MessageEvent(type, options)



A string with the name of the event. It is case-sensitive and browsers always set it to message.

options Optional

An object that, in addition of the properties defined in Event(), can have the following properties:

  • data Optional
    • : The data you want contained in the MessageEvent.
    This can be of any data type, and will default to null if not specified.
  • origin Optional
    • : A string representing the origin of the message emitter. This defaults to an empty string ('') if not specified.
  • lastEventId Optional
    • : A string representing a unique ID for the event. This defaults to an empty string ("") if not specified.
  • source Optional
    • : A MessageEventSource (which can be a Window, a MessagePort, or a ServiceWorker object) representing the message emitter. This defaults to null if not set.
  • ports Optional
    • : An array of MessagePort objects representing the ports associated with the channel the message is being sent through where appropriate (E.g. in channel messaging or when sending a message to a shared worker). This defaults to an empty array ([]) if not specified.

Return value

A new MessageEvent object.


var myMessage = new MessageEvent('message', {
  data : 'hello'


HTML Standard
# the-messageevent-interface:dom-event-constructor

Browser compatibility

BCD tables only load in the browser

See also

  • ExtendableMessageEvent — similar to this interface but used in interfaces that needs to give more flexibility to authors.