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年7月.
MessageEvent インターフェイスは対象のオブジェクトから受け取ったメッセージを表します。
次のメッセージを表すために使用されます。
このイベントによって引き起こされる動作は、対応する message イベント(例えば、 上記の onmessage ハンドラーを使ったもの)のイベントハンドラーとして設定された関数の中で定義されています。
Event MessageEventメモ: この機能はウェブワーカー内で利用可能です。
新しい MessageEvent を作成します。
このインターフェイスは親である Event からプロパティを継承しています。
MessageEvent.data 読取専用メッセージ送信元によって送信されたデータです。
MessageEvent.origin 読取専用文字列で、メッセージ送信元のオリジンを表します。
MessageEvent.lastEventId 読取専用文字列で、このイベントの一意の ID を表します。
MessageEvent.source 読取専用MessageEventSource (WindowProxy、MessagePort、ServiceWorker の何れかのオブジェクト)で、メッセージの送信元を表します。
MessageEvent.ports 読取専用MessagePort オブジェクトの配列で、メッセージが送信されるチャンネルに関連するポートを表します(チャンネルメッセージングや、共有ワーカーにメッセージを送信する場合など、適切な場合)。
このインターフェイスは親である Event からメソッドを継承してします。
initMessageEvent()メッセージイベントを初期化します。これ以上このメソッドを使用しないでください。代わりに、MessageEvent() コンストラクターを使用してください。
基本的な共有ワーカーの例(共有ワーカーを実行)には 2 つの HTML ページがあり、それぞれのページが単純な計算をする JavaScript を実行しています。異なるスクリプトが計算を実行するために同一のワーカーファイルを使用しています。ページの異なるウィンドウ内で動作していても、どちらのスクリプトもワーカーファイルにアクセスできます。
次のコードスニペットは、 SharedWorker オブジェクトの作成を SharedWorker() コンストラクターを使用して行う様子を示しています。どちらのスクリプトもこれを含んでいます。
次にどちらのスクリプトも SharedWorker.port プロパティで作成された MessagePort オブジェクトを通してワーカーにアクセスします。 onmessage イベントが addEventListener で装着されると、 start() メソッドでポートが手動で開きます。
ポートが開くと、どちらのスクリプトもワーカーにメッセージを送信し、送信されたメッセージを port.postMessage() と port.onmessage でそれぞれ処理します。
ワーカーの内部では、 onconnect ハンドラーを使用して上記の同一のポートに接続しています。そのワーカーと関連付けられたポートは、connect イベントの ports プロパティで接続可能です。その後、ポートを開くために MessagePort の start() メソッドを、メインのスレッドから送信されたメッセージを処理するために onmessage ハンドラーを使用します。
| HTML # the-messageevent-interface |
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.