MessageChannel.port2

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

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

構文

channel.port2;

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

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

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 を参照してください (実際のデモも実行できます)。

仕様

仕様書 策定状況 備考
HTML Living Standard
port2 の定義
現行の標準 Unknown との差異なし。
Unknown
port2 の定義
不明 仕様の W3C バージョン。

ブラウザの実装状況

BCD tables only load in the browser

関連情報