MessageChannel.port2

MessageChannel インターフェースの port2 読み取り専用プロパティは、メッセージチャンネルの第 2 ポートを返します。このポートは、チャンネルの元となるコンテキストに付属します。

注: この機能は Web Worker 内で利用可能です。

構文

channel.port2;

チャンネルの第 2 ポートを表す MessagePort オブジェクト。これはチャンネルの元となるコンテキストに付属するポートです。

次のコードブロックでは、MessageChannel.MessageChannel コンストラクタを使用して作成された新しいチャンネルを知ることができます。<iframe> が読み込まれると、MessagePort.postMessage にメッセージを添えて MessageChannel.port2<iframe> へ渡します。すると、handleMessage ハンドラが <iframe> から返送されたメッセージに (MessagePort.onmessage を使用して) 返答し、これを段落に挿入します。

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;
}

完全に動作する例は、Github 上の channel messaging basic demo を参照してください (実際のデモも実行できます)。

仕様

Specification
HTML Standard
# dom-messagechannel-port2-dev

ブラウザの実装状況

BCD tables only load in the browser

関連情報