
Send PostMessage-Aktion
Die Send PostMessage-Aktion sendet eine Nachricht von Ihrem laufenden Labvanced-Experiment an ein externes Ziel, wie eine übergeordnete Webseite, eine benutzerdefinierte Anwendung oder einen eingebetteten Frame, unter Verwendung der postMessage-API des Browsers.
Inhaltsverzeichnis
Überblick
Diese Aktion ist unter API Actions im Aktionsauswahlmenü aufgeführt.

Häufige Anwendungsfälle
- Benachrichtigung einer übergeordneten Anwendung (z. B. einem LMS oder einem institutionellen Portal), wenn ein Teilnehmer einen bestimmten Punkt erreicht oder eine Aufgabe abgeschlossen hat.
- Übermittlung eines Variablenwerts, wie einer Punktzahl, einer Antwort oder einem Bedingungslabel, in Echtzeit an ein externes System.
Die zweiseitige Einrichtung
Die Verwendung von postMessage zwischen Labvanced und einer externen Seite (wie einem iFrame oder einer übergeordneten Anwendung) ist ein zweiseitiger Prozess. Labvanced bearbeitet eine Seite: Diese Aktion sendet die Nachricht. Die andere Seite ist die externe Seite, die programmiert werden muss, um sie zu empfangen.
Die postMessage-API ist ein Standardbrowser-Feature. Die externe Seite benötigt einen window.addEventListener('message', handler)-Listener, um Nachrichten von Labvanced abzuholen. Dieser Listener sollte auch nach Domain filtern und überprüfen, dass der Nachrichtenursprung Labvanced ist, damit nur auf Nachrichten von einer vertrauenswürdigen Quelle reagiert wird. Sie oder Ihr Entwickler müssen diesen Code schreiben. Ein KI-Coding-Tool kann helfen, ihn schnell zu generieren, wenn nötig.
Wie es funktioniert
Wenn diese Aktion ausgelöst wird, sendet Labvanced ein postMessage an das Ziel-Fenster. Die Nachricht wird an jede Seite unter Destination Domain geliefert, die mit einem window.addEventListener('message', handler) lauscht.
Die Nachrichtenpayload enthält die Value to send. Falls ein Key festgelegt ist, wird es in die Payload aufgenommen, damit das empfangende Ende den Nachrichtentyp identifizieren und entsprechend behandeln kann.
Die externe Seite ist verantwortlich für die Verarbeitung der Nachricht. Ihr Listener sollte den Nachrichtenursprung überprüfen, bevor er darauf reagiert, um sicherzustellen, dass er nur auf Nachrichten reagiert, die von Labvanced gesendet wurden.
Nach der Auswahl von Send PostMessage erscheint die folgende Konfiguration:

Aktionsoptionen
| Menüpunkt | Optionen der Send PostMessage-Aktion |
|---|---|
Destination Domain | Gibt die Zielursprungsadresse an, die die Nachricht empfangen soll. Der Standardwert ist *, der an jede Ursprungsadresse sendet. Ersetzen Sie * durch die vollständige Ziel-URL (z. B. https://yoursite.com), wenn das Ziel bekannt ist. Es wird empfohlen, die genaue Domain aus Sicherheitsgründen anzugeben. |
Key | Hängt einen Identifizierungsschlüssel an die ausgehende Nachricht an. Dies strukturiert die Nachrichtenpayload als Key: value, die das empfangende Ende verwenden kann, um verschiedene Nachrichtentypen zu unterscheiden. Lassen Sie das Feld leer, wenn kein Schlüssel erforderlich ist. |
Value to send | Definiert die Daten, die in die ausgehende Nachricht aufgenommen werden sollen. Klicken Sie auf das Bearbeitungssymbol, um das Value-Select Menu zu öffnen und anzugeben, was gesendet werden soll: ein konstanter Wert, eine Labvanced-Variable oder ein Ausdruck. |
Hinweis: Das System, das die Nachricht empfängt (die übergeordnete Seite oder externe Anwendung), muss einen window.addEventListener('message', ...)-Listener implementieren, um das eingehende postMessage von Labvanced zu verarbeiten.
Weiterführende Literatur und offene Materialien
- PostMessage Received Trigger: der gekoppelte Trigger zum Lauschen auf eingehende PostMessages von externen Quellen.
- Value-Select Menu: wie man definiert, welchen Wert man mit Variablen, Konstanten oder Ausdrücken senden möchte.
- Labvanced Web Bridge Extension: Kontext, wie postMessage für die Kommunikation mit eingebetteten externen Websites verwendet wird.
- Events Overview: eine vollständige Einführung in das Trigger-und-Aktion-Logiksystem in Labvanced.