Spec-Zone.ru › Web APIs

MessageChannel: свойство port2

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

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

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

Примечание: Эта функция доступна в Web Workers.

Только для чтения свойство port2 интерфейса MessageChannel возвращает второй порт канала сообщений — порт, подключенный к контексту на другом конце канала, которому сообщение отправляется в первую очередь.

Значение

Объект MessagePort, представляющий второй порт канала, порт, подключенный к контексту на другом конце канала.

Примеры

В следующем блоке кода вы можете увидеть, как создается новый канал с использованием конструктора MessageChannel(). После загрузки IFrame мы передаем port2 в IFrame с помощью Window.postMessage() вместе с сообщением. Обработчик handleMessage затем реагирует на отправленное обратно сообщение из IFrame (с использованием onmessage), помещая его в абзац. За port1 прослушивается, чтобы проверить, когда пришло сообщение.

const channel = new MessageChannel();
const para = document.querySelector("p");

const ifr = document.querySelector("iframe");
const otherWindow = ifr.contentWindow;

ifr.addEventListener("load", iframeLoaded, false);

function iframeLoaded() {
  otherWindow.postMessage("Hello from the main page!", "*", [channel.port2]);
}

channel.port1.onmessage = handleMessage;
function handleMessage(e) {
  para.innerHTML = e.data;
}

Полный рабочий пример см. в нашем демо базовых сообщений по каналам на GitHub (запустить его онлайн).

Спецификации

Спецификация
HTML
# dom-messagechannel-port2-dev

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
port2 2 12 41 10.6 5 18 41 11 4.2 1.0 4.4

См. также

  • Использование канального обмена сообщениями

© 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/MessageChannel/port2

Spec-Zone.ru

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