MessageChannel

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

io error: No such file or directory (os error 2) (/home/runner/work/yari/yari/mdn/translated-content/files/pt-br/web/api/html_dom_api/index.md)

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

Nota: This feature is available in Web Workers.

Propriedades

MessageChannel.port1 Somente leitura

Retorna port1 do canal.

MessageChannel.port2 Somente leitura

Retorna port2 do canal.

Construtor

MessageChannel()

Retorna um novo objeto MessageChannel com dois novos objetos MessagePort.

Exemplo

No seguinte bloco de codigo, você pode ver um novo canal sendo criado usando o construtor MessageChannel(). Quando o <iframe> tiver carregado, nos passamos o MessageChannel.port2 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), 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