Onze vrijwilligers hebben dit artikel nog niet naar het Nederlands vertaald. Doe mee en help de klus te klaren!
The MessageChannel
interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort
properties.
Properties
MessageChannel.port1
Read only- Returns port1 of the channel.
MessageChannel.port2
Read only- Returns port2 of the channel.
Constructor
MessageChannel()
-
Returns a new
MessageChannel
object with two newMessagePort
objects.
Example
In the following code block, you can see a new channel being created using the MessageChannel()
constructor. When the <iframe>
has loaded, we pass MessageChannel.port2
to the <iframe>
using MessagePort.postMessage
along with a message. The handleMessage
handler then responds to the message being sent back from the <iframe>
(using MessagePort.onmessage
), by putting it into a paragraph.
var channel = new MessageChannel(); var para = document.querySelector('p'); var ifr = document.querySelector('iframe'); var otherWindow = ifr.contentWindow; ifr.addEventListener("load", iframeLoaded, false); function iframeLoaded() { otherWindow.postMessage('Hello from the main page!', '*', [channel.port2]); } channel.port1.onmessage = handleMessage; function handleMessage(e) { para.innerHTML = e.data; }
For a full working example, see our channel messaging basic demo on Github (run it live too).
Specifications
Specification | Status | Comment |
---|---|---|
WHATWG HTML Living Standard The definition of 'MessageChannel' in that specification. |
Living Standard | No difference from HTML5 Web Messaging. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 4 | 41 (41) | 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 | 41.0 (41) | (Yes) | 10.0 | 11.5 | 5.1 |
Available in workers | (Yes) | (Yes) | 41.0 (41) | (Yes) | (Yes) | (Yes) | (Yes) |