ServiceWorkerGlobalScope: messageerror イベント
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
メモ: この機能はサービスワーカー内でのみ利用可能です。
messageerror
は ServiceWorkerGlobalScope
インターフェイスのイベントで、受信メッセージがデシリアライズできない場合に発生します。
このイベントはキャンセル不可で、バブリングしません。
構文
このイベント名を addEventListener()
などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。
addEventListener("messageerror", (event) => {});
onmessageerror = (event) => {};
イベント型
ExtendableMessageEvent
です。 ExtendableEvent
を継承しています。
イベントプロパティ
親である ExtendableEvent
からプロパティを継承しています。
ExtendableMessageEvent.data
読取専用-
イベントのデータを返します。任意のデータ型にすることができます。
messageerror
イベントで配信された場合、プロパティはnull
になります。 ExtendableMessageEvent.origin
読取専用-
メッセージを送信した
Client
のオリジンを返します。 ExtendableMessageEvent.lastEventId
読取専用-
サーバー送信イベントにおいて、イベントソースの最後のイベント ID を表します。
ExtendableMessageEvent.source
読取専用-
メッセージを送信した
Client
オブジェクトへの参照を返します。 ExtendableMessageEvent.ports
読取専用-
関連するメッセージチャネルのポートを表す
MessagePort
オブジェクトを含む配列を返します。
例
以下の例では、ページが ServiceWorkerRegistration.active
を介して ServiceWorker
オブジェクトへのハンドルを取得し、その postMessage()
関数を呼び出します。
// 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" イベントを待ち受けすることでメッセージを受け取ることができます。
// service-worker.js
self.addEventListener("messageerror", (event) => {
// event は ExtendableMessageEvent オブジェクトです
console.error("Message deserialization failed");
});
また、スクリプトは onmessageerror
を使用してメッセージを待ち受けすることもできます。
// 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