1. 開発者向けのウェブ技術
  2. Web API
  3. Worker
  4. message

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Worker: message イベント

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

メモ: この機能はウェブワーカー内で利用可能ですが、サービスワーカーでは使用できません。

message イベントは Worker オブジェクトで、ワーカーの親がワーカーからメッセージを受け取ったとき(すなわち、ワーカーが DedicatedWorkerGlobalScope.postMessage() を用いてメッセージを送信したとき)に発生します。

このイベントはキャンセル不可で、バブリングしません。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("message", (event) => { })
onmessage = (event) => { }

イベント型

MessageEvent です。 Event を継承しています。

Event MessageEvent

イベントプロパティ

このインターフェイスには、親である Event から継承したプロパティもあります。

MessageEvent.data 読取専用

メッセージ送信者から送信されたデータです。

MessageEvent.origin 読取専用

文字列で、メッセージ送信者のオリジンを表します。

MessageEvent.lastEventId 読取専用

文字列で、このイベントの固有の ID を表します。

MessageEvent.source 読取専用

MessageEventSource (WindowProxy, MessagePort, ServiceWorker のいずれかのオブジェクトがなれる)で、メッセージ送信者を表します。

MessageEvent.ports 読取専用

MessagePort オブジェクトの配列で、メッセージが送信されるチャネルに関連するポートを表します(チャネルメッセージングや共有ワーカーにメッセージを送信する場合など、必要に応じて)。

このコードでは、新しいワーカーを生成して、 addEventListener() を用いてメッセージを待ち受けします。

js
const worker = new Worker("static/scripts/worker.js");
worker.addEventListener("message", (event) => {
 console.log(`Received message from worker: ${event.data}`);
});

他にも、 onmessage イベントハンドラープロパティを使用して待ち受けすることもできます。

js
const worker = new Worker("static/scripts/worker.js");
worker.onmessage = (event) => {
 console.log(`Received message from worker: ${event.data}`);
};

ワーカーは self.postMessage() を使用してメッセージを送信します。

js
// static/scripts/worker.js
self.postMessage("I'm alive!");

仕様書

仕様書
HTML
# event-message

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /