MDN wants to learn about developers like you:


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:

channel.port1.addEventListener('message', handleMessage, false);
function handleMessage(e) {
  para.innerHTML =;
  textInput.value = '';



Specification Status Comment
HTML Living Standard
The definition of 'start()' in that specification.
Living Standard  

Browser compatibility

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

See also

Document Tags and Contributors

 Last updated by: DomenicDenicola,