ServiceWorkerGlobalScope: messageerror イベント

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内でのみ利用可能です。

messageerrorServiceWorkerGlobalScope インターフェイスのイベントで、受信メッセージがデシリアライズできない場合に発生します。

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

構文

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

js
addEventListener("messageerror", (event) => {});

onmessageerror = (event) => {};

イベント型

イベントプロパティ

親である ExtendableEvent からプロパティを継承しています

ExtendableMessageEvent.data 読取専用

イベントのデータを返します。任意のデータ型にすることができます。messageerror イベントで配信された場合、プロパティは null になります。

ExtendableMessageEvent.origin 読取専用

メッセージを送信した Client のオリジンを返します。

ExtendableMessageEvent.lastEventId 読取専用

サーバー送信イベントにおいて、イベントソースの最後のイベント ID を表します。

ExtendableMessageEvent.source 読取専用

メッセージを送信した Client オブジェクトへの参照を返します。

ExtendableMessageEvent.ports 読取専用

関連するメッセージチャネルのポートを表す MessagePort オブジェクトを含む配列を返します。

以下の例では、ページが ServiceWorkerRegistration.active を介して ServiceWorker オブジェクトへのハンドルを取得し、その postMessage() 関数を呼び出します。

js
// main.js
if (navigator.serviceWorker) {
  navigator.serviceWorker.register("service-worker.js");

  navigator.serviceWorker.addEventListener("message", (event) => {
    // event は MessageEvent オブジェクトです
    console.log(`The service worker sent me a message: ${event.data}`);
  });

  navigator.serviceWorker.ready.then((registration) => {
    registration.active.postMessage("Hi service worker");
  });
}

サービスワーカーは、次のようにして "message" イベントを待ち受けすることでメッセージを受け取ることができます。

js
// service-worker.js
self.addEventListener("messageerror", (event) => {
  // event は ExtendableMessageEvent オブジェクトです
  console.error("Message deserialization failed");
});

また、スクリプトは onmessageerror を使用してメッセージを待ち受けすることもできます。

js
// service-worker.js
self.onmessageerror = (event) => {
  // event は ExtendableMessageEvent オブジェクトです
  console.error("Message deserialization failed");
};

仕様書

Specification
Service Workers
# eventdef-serviceworkerglobalscope-messageerror
Service Workers
# dom-serviceworkerglobalscope-onmessageerror

ブラウザーの互換性

BCD tables only load in the browser

関連情報