PostMessage é uma nova API de comunicação cross-origin introduzida em html5 que permite que você se comunice bidirecionalmente com a página principal e qualquer página de classe frame ou uma página aberta por window.open. Seu processo geral de operação é o seguinte:
O método postMessage(data,origin) aceita dois parâmetros:
(1) dados: Os dados a serem passados, a especificação HTML5 menciona que o parâmetro pode ser qualquer tipo básico de JavaScript ou um objeto reproduzível, mas nem todos os navegadores fizeram isso, alguns só conseguem lidar com parâmetros de string, então precisamos usar o método JSON.stringify() para serializar os parâmetros do objeto ao passar os parâmetros, e nos referir a json2.js na versão inferior do IE para alcançar efeitos semelhantes.
(2) origem: Parâmetro de string, indicar a origem da janela de destino, protocolo + host + número da porta [+URL], a URL será ignorada, então não pode ser escrita, esse parâmetro é por questões de segurança, o método postMessage() só passa a mensagem para a janela especificada, claro, se quiser, você também pode definir o parâmetro para "*", para que ela possa ser passada para qualquer janela, se quiser especificar a mesma origem da janela atual, ela está definida como "/";
Envie e receba mensagens você mesmo
O código é o seguinte:
A janela pai envia uma mensagem para a janela filha, e a janela filha recebe a mensagem
O código é o seguinte:
A janela filho envia uma mensagem para a janela pai, e a janela mãe recebe a mensagem
O código é o seguinte:
Além disso, um modo simples de ouvinte/cliente é conectado ao cliente para mensagens entre domínios no seguinte endereço:O login do hiperlink está visível.
(Fim)
|