HTML5 中的 MessageChannel 和 MessagePort 物件是什麼?


在建立 messageChannel 時,它會在內部建立兩個埠以傳送資料並將其轉發到另一個瀏覽上下文。

  • postMessage() − 透過通道釋出訊息
  • 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);

更新於: 2020 年 6 月 25 日

134 次瀏覽

開啟你的事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.