The start() method of the MessagePort interface starts the sending of messages queued on the port. This method is only needed when using EventTarget.addEventListener; it is implied when using MessageChannel.onmessage.

Note: This feature is available in Web Workers.








In the following code block, you can see a handleMessage handler function, run when a message is sent back to this document using onmessage:

channel.port1.onmessage = handleMessage;
function handleMessage(e) {
  para.innerHTML =;

Note: For a full working example, see our channel messaging basic demo on Github (run it live too).

Another option would be to do this using EventTarget.addEventListener, however, when this method is used, you need to explicitly call start() to begin the flow of messages to this document:

function handleMessage(e) {
  para.innerHTML =;
  textInput.value = '';



Specification Status Comment
WHATWG HTML Living Standard
The definition of 'start()' in that specification.
Living Standard No difference from HTML5 Web Messaging.
HTML5 Web Messaging
The definition of 'start()' in that specification.
Recommendation W3C version of the spec

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 4 Not supported 10.0 10.6 5
Available in workers (Yes) 41 (41) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 4.4 4 Not supported Not supported 10.0 11.5 5.1
Available in workers (Yes) (Yes) 41.0 (41) (Yes) (Yes) (Yes) (Yes)

See also

Document Tags and Contributors

 Contributors to this page: Sebastianz, chrisdavidmills, fscholz, kscarfone
 Last updated by: Sebastianz,