--- title: MessageChannel.port1 slug: Web/API/MessageChannel/port1 tags: - API - Channel messaging - HTML5 - Message Channel API - MessageChannel - Property - Reference translation_of: Web/API/MessageChannel/port1 ---
port1
は {{domxref("MessageChannel")}} インターフェースの読み取り専用プロパティで、メッセージチャンネルの最初のポートを返します。このポートは、チャンネルの元となるコンテキストに付属します。
{{AvailableInWorkers}}
channel.port1;
チャンネルの最初のポートを表す {{domxref("MessagePort")}} オブジェクト。これはチャンネルの元となるコンテキストに付属するポートです。
次のコードブロックでは、 {{domxref("MessageChannel.MessageChannel", "MessageChannel()")}} コンストラクターを使用して作成された新しいチャンネルが見られます。 {{HTMLElement("iframe")}} が読み込まれると、 {{domxref("MessageChannel.port2")}} を {{HTMLElement("iframe")}} へ、メッセージを通して {{domxref("MessagePort.postMessage")}} を使用して渡します。すると、 handleMessage
ハンドラーが <iframe>
から返送されたメッセージに ({{domxref("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; }
仕様 | 状態 | 備考 |
---|---|---|
{{SpecName('HTML WHATWG', 'web-messaging.html#dom-messagechannel-port1', 'port1')}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.MessageChannel.port1")}}