Spec-Zone.ru › Web APIs

MessageChannel

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

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

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

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

Интерфейс MessageChannel API канальной передачи сообщений позволяет создавать новый канал сообщений и отправлять данные через него с помощью двух свойств MessagePort.

Конструктор

MessageChannel()

Возвращает новый объект MessageChannel с двумя новыми объектами MessagePort.

Свойства экземпляра

MessageChannel.port1 Только для чтения

Возвращает порт1 канала.

MessageChannel.port2 Только для чтения

Возвращает порт2 канала.

Пример

В следующем примере показано создание нового канала с помощью конструктора MessageChannel().

После загрузки IFrame мы регистрируем обработчик события onmessage для MessageChannel.port1 и передаём MessageChannel.port2 в IFrame с помощью метода window.postMessage вместе с сообщением.

После получения сообщения из IFrame функция onMessage выводит сообщение в абзац.

const channel = new MessageChannel();
const output = document.querySelector(".output");
const iframe = document.querySelector("iframe");

// Wait for the iframe to load
iframe.addEventListener("load", onLoad);

function onLoad() {
  // Listen for messages on port1
  channel.port1.onmessage = onMessage;

  // Transfer port2 to the iframe
  iframe.contentWindow.postMessage("Hello from the main page!", "*", [
    channel.port2,
  ]);
}

// Handle messages received on port1
function onMessage(e) {
  output.innerHTML = e.data;
}

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

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

Спецификация
HTML
# message-channels

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
MessageChannel 2 12 41 10.6 5 18 41 11 4.2 1.0 4.4
MessageChannel 2 12 41 10.6 5 18 41 11 4.2 1.0 4.4
port1 2 12 41 10.6 5 18 41 11 4.2 1.0 4.4
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

Spec-Zone.ru

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