The message
event is used in a page controlled by a service worker to receive messages from the service worker.
This event is not cancelable and does not bubble.
The message
event is used in a page controlled by a service worker to receive messages from the service worker.
This event is not cancelable and does not bubble.
Use the event name in methods like addEventListener()
, or set an event handler property.
addEventListener('message', event => { }); onmessage = event => { };
An MessageEvent
. Inherits from Event
.
This interface also inherits properties from its parent, Event
.
MessageEvent.data
Read only
The data sent by the message emitter.
MessageEvent.origin
Read only
A USVString
representing the origin of the message emitter.
MessageEvent.lastEventId
Read only
A DOMString
representing a unique ID for the event.
MessageEvent.source
Read only
A MessageEventSource
(which can be a WindowProxy
, MessagePort
, or ServiceWorker
object) representing the message emitter.
MessageEvent.ports
Read only
An array of MessagePort
objects representing the ports associated with the channel the message is being sent through (where appropriate, e.g. in channel messaging or when sending a message to a shared worker).
In this example the service worker get the client's ID from a fetch
event and then sends it a message using Client.postMessage
:
// service-worker.js async function messageClient(clientId) { const client = await clients.get(clientId); client.postMessage('Hi client!'); } addEventListener('fetch', (event) => { messageClient(event.clientId); event.respondWith(() => { // ... }); });
The client can receive the message by listening to the message
event:
// main.js navigator.serviceWorker.addEventListener('message', (message) => { console.log(message); });
Alternatively, he client can receive the message with the onmessage
event handler:
// main.js navigator.serviceWorker.onmessage = (message) => { console.log(message); };
Specification |
---|
Service Workers 1 # dom-serviceworkercontainer-onmessage |
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
message_event |
40 |
17 |
44
Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.
|
No |
27 |
11.1 |
40 |
40 |
44 |
27 |
11.3 |
4.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/message_event