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
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.
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