BroadcastChannel: messageerror イベント

Baseline 2022

Newly available

Since March 2022, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

messageerror イベントは、シリアル化を解釈できないメッセージがチャンネルに到着したときに BroadcastChannel オブジェクト上で発生します。

構文

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

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

イベント型

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

Event MessageEvent

イベントプロパティ

このインターフェイスは親である Event からプロパティを継承しています。

MessageEvent.data 読取専用

メッセージ送信元によって送信されたデータです。

MessageEvent.origin 読取専用

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

MessageEvent.lastEventId 読取専用

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

MessageEvent.source 読取専用

メッセージイベントソース、すなわち WindowProxyMessagePortServiceWorker の何れかのオブジェクトで、メッセージの送信元を表します。

MessageEvent.ports 読取専用

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

このコードは addEventListener を使用してメッセージとエラーを待ち受けします。

js
const channel = new BroadcastChannel("example-channel");

channel.addEventListener("message", (event) => {
  received.textContent = event.data;
});

channel.addEventListener("messageerror", (event) => {
  console.error(event);
});

上と同じですが、 onmessageonmessageerror のイベントハンドラープロパティを使用します。

js
const channel = new BroadcastChannel("example-channel");

channel.onmessage = (event) => {
  received.textContent = event.data;
};

channel.onmessageerror = (event) => {
  console.log(event);
};

仕様書

Specification
HTML Standard
# event-messageerror
HTML Standard
# handler-broadcastchannel-onmessageerror

ブラウザーの互換性

BCD tables only load in the browser

関連情報