HTML5 中浏览上下文之间的双向通信


浏览上下文之间的双向通信称为 Channel 消息传递。它可用于跨多个来源进行通信。

在创建 messageChannel 时,它会内部创建两个端口,用于发送数据并将其转发到另一个浏览上下文。

  • postMessage() − 通过 Channel 发送消息
  • start() − 发送数据
  • close() − 关闭端口

在此场景中,我们从一个 iframe 向另一个 iframe 发送数据。这里我们在函数中调用数据并将数据传递给 DOM。

var loadHandler = function(){
   var mc, portMessageHandler;
   mc = new MessageChannel();
   window.parent.postMessage('documentAHasLoaded','http://foo.example',[mc.port2]);
   portMessageHandler = function(portMsgEvent){
      alert( portMsgEvent.data );
   }
   mc.port1.addEventListener('message', portMessageHandler, false);
   mc.port1.start();
}
window.addEventListener('DOMContentLoaded', loadHandler, false);

更新于:29-Jan-2020

291 次浏览

开启你的 职业

完成课程即可获得认证

开始学习
广告