Spec-Zone.ru › Web APIs

Окно: событие message

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Событие message срабатывает на объекте Window, когда окно получает сообщение, например, из вызова Window.postMessage() из другого контекста просмотра.

Это событие не может быть отменено и не распространяется.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте свойство обработчика события.

addEventListener("message", (event) => {});

onmessage = (event) => {};

Тип события

Объект MessageEvent. Наследует от Event.

Событие MessageEvent

Свойства события

Этот интерфейс также наследует свойства от своего родителя, 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API