Note: This feature is available in Web Workers.
The messageerror event of the BroadcastChannel interface fires when a message that can't be deserialized arrives on the channel.
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("messageerror", (event) => { })
onmessageerror = (event) => { }A MessageEvent. Inherits from Event.
This code uses addEventListener() to listen for messages and errors:
const channel = new BroadcastChannel("example-channel");
channel.addEventListener("message", (event) => {
received.textContent = event.data;
});
channel.addEventListener("messageerror", (event) => {
console.error(event);
});The same, but using the onmessage and onmessageerror event handler properties:
const channel = new BroadcastChannel("example-channel");
channel.onmessage = (event) => {
received.textContent = event.data;
};
channel.onmessageerror = (event) => {
console.log(event);
};A common cause of messageerror events is attempting to send a SharedArrayBuffer object, or a buffer view backed by one, across agent clusters. The following code demonstrates this.
Page A runs the following code:
const channel = new BroadcastChannel("hello");
channel.postMessage({ data: new SharedArrayBuffer(1024) });Page B runs the following code:
const channel = new BroadcastChannel("hello");
channel.addEventListener("messageerror", (event) => {
console.error("Message error");
});Then page B will receive a messageerror event when it tries to deserialize the message sent from page A.
message.