ServiceWorkerGlobalScope: messageerror イベント
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (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> |
ブラウザーの互換性
Loading…