MessageChannel.port1

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

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

構文

channel.port1;

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

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

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

仕様書

仕様 状態 備考
HTML Living Standard
port1 の定義
現行の標準  

ブラウザーの対応

BCD tables only load in the browser

関連情報