ServiceWorkerGlobalScope: событие messageerror
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна только в Сервис-воркерах.
Событие messageerror интерфейса ServiceWorkerGlobalScope происходит при невозможности десериализации входящих сообщений.
Это событие не отменяется и не распространяется.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика события.
addEventListener("messageerror", (event) => {});
onmessageerror = (event) => {};
Тип события
Объект ExtendableMessageEvent. Наследуется от ExtendableEvent.
Свойства события
Наследует свойства от родителя, ExtendableEvent.
-
ExtendableMessageEvent.dataТолько для чтения -
Возвращает данные события. Они могут быть любого типа. Если событие отправлено в
messageerrorсобытии, свойство будетnull. -
ExtendableMessageEvent.originТолько для чтения -
Возвращает источник
Client, отправивший сообщение. -
ExtendableMessageEvent.lastEventIdТолько для чтения -
Представляет, в событиях, отправляемых с сервера, последний идентификатор события источника события.
-
ExtendableMessageEvent.sourceТолько для чтения -
Возвращает ссылку на объект
Client, отправивший сообщение. -
ExtendableMessageEvent.portsТолько для чтения -
Возвращает массив объектов
MessagePort, представляющих порты ассоциированного канала сообщений.
Примеры
В примере ниже страница получает доступ к объекту ServiceWorker через ServiceWorkerRegistration.active и затем вызывает его функцию postMessage().
// main.js
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");
});
}
Сервис-воркер может прослушивать ошибку десериализации сообщения, прослушивая событие messageerror:
// service-worker.js
self.addEventListener("messageerror", (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
});
В качестве альтернативы, скрипт может прослушивать ошибку десериализации сообщения, используя onmessageerror:
// service-worker.js
self.onmessageerror = (event) => {
// event is an ExtendableMessageEvent object
console.error("Message deserialization failed");
};
Спецификации
| Спецификация |
|---|
| Сервис-воркеры # eventdef-serviceworkerglobalscope-messageerror |
| Сервис-воркеры # dom-serviceworkerglobalscope-onmessageerror |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
messageerror_event |
81 | 81 | 65 | 68 | 11.1Несмотря на поддержку свойстваonmessageerror, событие messageerror никогда не срабатывает. См. ошибку 272967. |
81 | 65 | 58 | 11.3Несмотря на поддержку свойстваonmessageerror, событие messageerror никогда не срабатывает. См. ошибку 272967. |
13.0 | 81 |
См. также
© 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/ServiceWorkerGlobalScope/messageerror_event