Окно: событие message
Базовая Широко доступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Событие message срабатывает на объекте Window, когда окно получает сообщение, например, из вызова Window.postMessage() из другого контекста просмотра.
Это событие не может быть отменено и не распространяется.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.
addEventListener("message", (event) => {});
onmessage = (event) => {};
Тип события
Объект MessageEvent. Наследует от Event.
Свойства события
Этот интерфейс также наследует свойства от своего родителя, Event.
-
MessageEvent.dataТолько для чтения -
Данные, отправленные отправителем сообщения.
-
MessageEvent.originТолько для чтения -
Строка, представляющая происхождение отправителя сообщения.
-
MessageEvent.lastEventIdТолько для чтения -
Строка, представляющая уникальный идентификатор события.
-
MessageEvent.sourceТолько для чтения -
Объект
MessageEventSource(который может быть WindowProxy,MessagePortилиServiceWorker), представляющий отправителя сообщения. -
MessageEvent.portsТолько для чтения -
Массив объектов
MessagePort, представляющих порты, связанные с каналом, через который отправляется сообщение (по мере необходимости, например, при обмене сообщениями или при отправке сообщения в общий рабочий процесс).
Примеры
Предположим, что скрипт отправляет сообщение в другой контекст просмотра, например, в другой <iframe>, используя такой код:
const targetFrame = window.top.frames[1];
const targetOrigin = "https://example.org";
const windowMessageButton = document.querySelector("#window-message");
windowMessageButton.addEventListener("click", () => {
targetFrame.postMessage("hello there", targetOrigin);
});
Приёмник может прослушивать сообщение с помощью addEventListener() с помощью такого кода:
window.addEventListener("message", (event) => {
console.log(`Received message: ${event.data}`);
});
В качестве альтернативы, обработчик события может использовать свойство onmessage:
window.onmessage = (event) => {
console.log(`Received message: ${event.data}`);
};
Спецификации
| Спецификация |
|---|
| HTML # event-message |
| HTML # handler-window-onmessage |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
message_event |
60 | 12 | 9 | 47 | 4 | 60 | 9 | 47 | 4 | 8.0 | 60 |
См. также
- Связанные события:
messageerror. -
Window.postMessage().
© 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/Window/message_event