ExtendableMessageEvent: data property
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Please help us by answering a few questions.
Note: This feature is only available in Service Workers.
The data
read-only property of the
ExtendableMessageEvent
interface returns the event's data. It can be any
data type.
Value
Any data type.
Examples
When the following code is used inside a service worker to respond to a push messages
by sending the data received via PushMessageData
to the main context via
a channel message, the event
object of onmessage
will be a ExtendableMessageEvent
.
js
let port;
self.addEventListener("push", (e) => {
const obj = e.data.json();
if (obj.action === "subscribe" || obj.action === "unsubscribe") {
port.postMessage(obj);
} else if (obj.action === "init" || obj.action === "chatMsg") {
port.postMessage(obj);
}
});
self.onmessage = (e) => {
console.log(e.data);
port = e.ports[0];
};
Specifications
Specification |
---|
Service Workers # extendablemessage-event-data |