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
.
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 objetosMessagePort
.
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.
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
Especificações | Status | Comentário |
---|---|---|
HTML Living Standard The definition of 'Message channels' in that specification. |
Padrão em tempo real |
Compatibilidade com navegadores
BCD tables only load in the browser