MessageChannel

A interface MessageChannel da API Channel Messaging (en-US) nos permite criar um novo canal de mensagem e enviar os dados através de suas duas propriedades MessagePort (en-US).

Note: This feature is available in Web Workers

Propriedades

MessageChannel.port1 (en-US) Somente leitura

Retorna port1 do canal.

MessageChannel.port2 (en-US) Somente leitura

Retorna port2 do canal.

Construtor

MessageChannel() (en-US)

Retorna um novo objeto MessageChannel com dois novos objetos MessagePort (en-US).

Exemplo

No seguinte bloco de codigo, você pode ver um novo canal sendo criado usando o construtor MessageChannel() (en-US). Quando o <iframe> tiver carregado, nos passamos o MessageChannel.port2 (en-US) para o <iframe> usando MessagePort.postMessage juntamente com uma mensagem. O manipulador handleMessage então reponde à mensagem que foi enviada de volta do <iframe> (using MessagePort.onmessage (en-US)), colocando-o em um parágrafo.

js
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;
}

Para um exemplo completo, veja nosso channel messaging basic demo no Github (rode online também ).

Especificações

Specification
HTML Standard
# message-channels

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também