Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年9月.
メモ: この機能はウェブワーカー内で利用可能です。
MessagePort はチャンネルメッセージング API のインターフェイスで、MessageChannel の 2 つのポートの一方を表し、片方のポートから送信されるメッセージをもう片方のポートで受信待機できます。
MessagePort は移譲可能オブジェクトです。
EventTarget MessagePort親である EventTarget からの継承したメソッドがあります。
postMessage()ポートからメッセージを送信します。また、任意でオブジェクトの所有権を他の閲覧コンテキストへ転送します。
start()ポート上で順番待ちのメッセージの送信を開始します。(EventTarget.addEventListener を使用する場合のみ必要です。onmessage を使用する場合は暗黙に実行されます。)
close()ポートとの接続を切断し、このポートはアクティブではなくなります。
親である EventTarget から継承したイベントがあります。
messageMessagePort オブジェクトがメッセージを受信したときに発行されます。
messageerrorMessagePort オブジェクトがデシリアライズできないメッセージを受け取ったときに発行されます。
次の例では、MessageChannel() コンストラクターで作成された新しいチャンネルがあります。
IFrame が読み込まれると、onmessage ハンドラーを MessageChannel.port1 に登録し、MessageChannel.port2 を IFrame に、メッセージと共に window.postMessage を使用して送信します。
IFrame からメッセージが返却されると。onMessage 関数でメッセージを段落に出力します。
完全に動作する例は、Github 上の channel messaging basic demo を参照してください (実際のデモも実行できます)。
| HTML # message-ports |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2024年8月22日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.