ExtendableMessageEvent
Базовая Широко поддерживается
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
Примечание: Эта функция доступна только в рабочих потоках сервиса.
Интерфейс ExtendableMessageEvent API рабочих потоков сервиса представляет собой объект события message, сгенерированного в рабочем потоке сервиса (когда сообщение получено в ServiceWorkerGlobalScope из другого контекста) — увеличивает срок жизни таких событий.
Этот интерфейс наследуется от интерфейса ExtendableEvent.
Конструктор
ExtendableMessageEvent()-
Создаёт новый экземпляр объекта
ExtendableMessageEvent.
Свойства экземпляра
Наследует свойства от родительского интерфейса ExtendableEvent.
-
ExtendableMessageEvent.dataТолько для чтения -
Возвращает данные события. Они могут быть любого типа. Если отправлено в
messageerrorсобытии, свойство будетnull. -
ExtendableMessageEvent.originТолько для чтения -
Возвращает источник
Client, отправившего сообщение. -
ExtendableMessageEvent.lastEventIdТолько для чтения -
Представляет собой последний идентификатор события источника события в событиях, отправляемых по серверу.
-
ExtendableMessageEvent.sourceТолько для чтения -
Возвращает ссылку на объект
Client, отправивший сообщение. -
ExtendableMessageEvent.portsТолько для чтения -
Возвращает массив, содержащий объекты
MessagePort, представляющие порты связанного канала сообщений.
Методы экземпляра
Наследует методы от родительского интерфейса ExtendableEvent.
Примеры
В примере ниже страница получает ссылку на объект ServiceWorker через ServiceWorkerRegistration.active, а затем вызывает его функцию postMessage().
// in the page being controlled
if (navigator.serviceWorker) {
navigator.serviceWorker.register("service-worker.js");
navigator.serviceWorker.addEventListener("message", (event) => {
// event is a MessageEvent object
console.log(`The service worker sent me a message: ${event.data}`);
});
navigator.serviceWorker.ready.then((registration) => {
registration.active.postMessage("Hi service worker");
});
}
Рабочий поток сервиса может получить сообщение, прослушивая событие message:
// in the service worker
addEventListener("message", (event) => {
// event is an ExtendableMessageEvent object
console.log(`The client sent me a message: ${event.data}`);
event.source.postMessage("Hi client");
});
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
ExtendableMessageEvent |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
ExtendableMessageEvent |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
data |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
lastEventId |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
origin |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
ports |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
source |
51 | 17 | 44 | 38 | 11.1 | 51 | 44 | 41 | 11.3 | 5.0 | 51 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ExtendableMessageEvent