MessageChannel: MessageChannel()-Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Der MessageChannel()-Konstruktor des MessageChannel-Interfaces gibt ein neues MessageChannel-Objekt mit zwei neuen MessagePort-Objekten zurück.

Syntax

js
new MessageChannel()

Parameter

Keine (undefined).

Rückgabewert

Ein neues MessageChannel-Objekt.

Beispiele

Im folgenden Codeblock sehen Sie, wie ein neuer Kanal mit dem MessageChannel()-Konstruktor erstellt wird. Wenn das <iframe> geladen ist, übergeben wir port2 an das <iframe> mithilfe von MessagePort.postMessage zusammen mit einer Nachricht. Der handleMessage-Handler reagiert dann auf eine Nachricht, die vom <iframe> zurückgesendet wird (unter Verwendung von onmessage) und fügt sie in einen Absatz ein. Es wird auf port1 gehört, um zu überprüfen, wann die Nachricht eintrifft.

js
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;
}

Für ein vollständiges funktionierendes Beispiel sehen Sie sich unser Channel-Messaging-Grundlagen-Demo auf GitHub an (führen Sie es auch live aus).

Spezifikationen

Specification
HTML Standard
# dom-messagechannel-dev

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch