


Detaillierte Erläuterung der grundlegenden Verwendung der Kommunikations-API in HTML5_html5-Tutorial-Fähigkeiten
Dokumentübergreifende Nachrichtenkommunikation kann eine sichere quellenübergreifende Kommunikation zwischen Iframes, Registerkarten und Fenstern gewährleisten. Es definiert die postMessage-API als Standardmethode zum Senden von Nachrichten. Es ist sehr einfach, postMessage zum Senden von Nachrichten zu verwenden. Der Code lautet wie folgt:
chatFrame.contextWindow.postMessage('Hello,world','http://www.example.com');
Beim Empfang Um Nachrichten anzuzeigen, klicken Sie einfach auf die Seite „Ereignisbehandlungsfunktion hinzufügen“. Wenn eine Nachricht eintrifft, wird die Quelle der Nachricht überprüft, um festzustellen, ob die Nachricht verarbeitet werden soll.
Das Nachrichtenereignis ist ein DOM-Ereignis mit Daten- und Ursprungsattributen. Das Datenattribut ist die tatsächliche vom Absender übermittelte Nachricht und das Ursprungsattribut ist die sendende Quelle.
Die postMessage-API ist nicht nur in der Lage, zwischen Dokumenten desselben Ursprungs zu kommunizieren, sondern ist auch nützlich, wenn der Browser keine nicht-originale Kommunikation zulässt. Aufgrund seiner Konsistenz und Benutzerfreundlichkeit empfiehlt sich postMessage auch bei der Kommunikation zwischen Dokumenten gleicher Herkunft. Bei der Kommunikation in einer JavaScript-Umgebung, beispielsweise bei der Kommunikation mit HTML5-Web-Workern, sollte immer die postMessage-API verwendet werden.
1.1 Ursprungssicherheit verstehen
HTML5 Rongguang führt das Konzept des Ursprungs ein, um die Domänensicherheit zu klären und zu verbessern. Ein Ursprung ist eine Teilmenge von Adressen, die zum Aufbau von Vertrauensbeziehungen im Netzwerk verwendet werden. Die Quelle besteht aus Regeln (Schema), Host (Host) und Port (Post).
Pfad wird im Quellenkonzept nicht berücksichtigt.
HTML5 definiert die Serialisierung von Quellen. Quellen erscheinen als Zeichenfolgen in APIs und Protokollen.
PostMessage-Sicherheitsregeln stellen sicher, dass Nachrichten nicht an unbeabsichtigte Quellseiten übermittelt werden. Beim Versenden einer Nachricht gibt der Absender die Quelle des Empfängers an. Wenn das vom Absender zum Aufrufen von postMessage verwendete Fenster keinen bestimmten Ursprung hat (z. B. wenn der Benutzer zu einer anderen Website gesprungen ist), stellt der Browser die Nachricht nicht zu.
In ähnlicher Weise wird beim Empfang einer Nachricht auch die Quelle des Absenders als Teil der Nachricht angegeben. Um Fälschungen zu vermeiden, wird die Quelle der Nachricht vom Browser bereitgestellt. Der Empfänger kann entscheiden, welche Nachrichten er verarbeitet und welche er ignoriert. Wir können eine Whitelist führen und den Browser anweisen, nur Nachrichten von vertrauenswürdigen Quellen zu verarbeiten.
Es ist am besten, niemals Saiten von Drittanbietern zu bewerten. Vermeiden Sie außerdem die Verwendung der eval-Methode zur Verarbeitung anwendungsinterner Zeichenfolgen. JSON kann über die Parser window.JSON oder json,.org genutzt werden.
1.2 Browserunterstützung für dokumentübergreifende Nachrichtenkommunikation
Ein gängiger Ansatz besteht darin, zu erkennen, ob das withCredentials-Attribut im XMLHttpRequest-Objekt vorhanden ist:
- var xhr = new XMLHttpRequest(); if (typeof xhr.withCredentials === undefiniert) { //Unterstützt kein Cross-Origin-XMLHttpRequest } else { //Unterstützt Cross- origin XMLHttpRequest }
Tipps Die von HTML5 definierte MessageEvent-Schnittstelle ist auch Teil von HTML5 WebSockets und HTML5 WebWorkers. Die Kommunikationsfunktion von HTML5 verwendet zum Empfangen von Nachrichten dieselbe API wie die MessageEvent-Schnittstelle. Andere Kommunikations-APIs wie EventSource API und Web Workers verwenden ebenfalls die MessageEvent-Schnittstelle, um Nachrichten zu übermitteln.
1.4 Erstellen Sie eine Anwendung mit der postMessage-API
Senden Sie eine Nachricht
Sie können eine Nachricht senden, indem Sie die Funktion postMessage() im Fensterobjekt der Zielseite aufrufen. Der Code lautet wie folgt folgt:
- window.postMessage("Hallo Welt", "porta"); >
-
document.getElementsByTagName("iframe")[0].contentWindow.postMessage("Hallo, Welt", "cha");
Nachrichtenereignisse abhören
Beim Empfangen von Nachrichten müssen Sie der Seite lediglich einen Ereignishandler hinzufügen. Wenn eine Nachricht eintrifft, wird die Quelle der Nachricht überprüft, um festzustellen, ob die Nachricht verarbeitet werden soll.
JavaScript-CodeInhalt in die Zwischenablage kopieren- window.postMessage("Hallo Welt", "porta"); >
Zum Beispiel: Aufgrund unterschiedlicher Regeln (wie https und http) ist die Quelle der Seite unterschiedlich.
Der Pfad wird im Quellenbegriff nicht berücksichtigt. Zum Beispiel: Anstatt nur Pfade handelt es sich um dieselbe Quelle.
Quellen erscheinen als Zeichenfolgen in APIs und Protokollen.
JavaScript-CodeInhalt in die Zwischenablage kopieren-
var originWhiteList = ["porta", "game" , ""]; function checkWhiteList(origin) { for (var i=0; i
if (origin === originWhiteList[i]) { zurück wahr; } } zurück falsch; } function messageHandler(e) { if (checkWhiteList(e.origin)) { processMessage(e. Daten); } else { //Nachrichten aus unbekannten Quellen ignorieren } }
2 XMLHttpRequest Level2
Als verbesserte Version von XMLHttpRequest hat XMLHttpRequest Level2 seine Funktionalität erheblich verbessert. Konzentriert sich hauptsächlich auf zwei Aspekte: (1) Cross-Source-XMLHttpRequests;
Cross-Origin-HTTP-Anfragen enthalten einen Origin-Header, um dem Server Quellinformationen der HTTP-Anfrage bereitzustellen. Der Header ist durch den Browser geschützt und kann nicht durch Anwendungscode geändert werden. Es hat im Wesentlichen die gleiche Wirkung wie das Ursprungsattribut eines Nachrichtenereignisses bei der dokumentübergreifenden Nachrichtenkommunikation.
Die CORS-Spezifikation erfordert, dass einige sensible Verhaltensweisen, wie z. B. Anfragen zur Beantragung von Zertifikaten oder andere OPTIONS-Preflight-Anfragen als GET und POST, vom Browser an den Server gesendet werden müssen, um festzustellen, ob dieses Verhalten unterstützt werden kann, und welche Erlaubnis bedeutet, dass eine erfolgreiche Kommunikation möglicherweise von einem Server mit CORS-Funktionen unterstützt werden muss.
2.2 Fortschrittsereignisse
Eine der wichtigsten API-Verbesserungen in der neuen Version von XMLHttpRequest ist die Hinzufügung einer Reaktion auf den Fortschritt.
XMLHttpRequest Level2 verwendet einen aussagekräftigen Namen Progress, um das Fortschrittsereignis zu benennen.
3 Erweiterte Funktionen3.1 Strukturierte Daten
Frühe Versionen von postMessage unterstützen nur Zeichenfolgen. Spätere Versionen unterstützten andere Datentypen wie JavaScript-Objekte, Canvas-Bilddaten und Dateien. Aufgrund der unterschiedlichen Spezifikationsunterstützung verschiedener Browser ist auch die Unterstützung verschiedener Objekttypen unterschiedlich.
3.2 Framebusting
Framebusting-Technologie kann verwendet werden, um sicherzustellen, dass bestimmte Inhalte nicht in jframe geladen werden. Die Anwendung erkennt zunächst, ob das Fenster, in dem sie sich befindet, das äußerste Fenster ist (window.top). Wenn nicht, springt sie aus dem Rahmen, der es enthält. Der Code lautet wie folgt:
JavaScript-Code
Inhalt in die Zwischenablage kopieren- if(window!=window.top)
- {
- window.top.location=location;
- }
Browser, die neue Binär-APIs (z. B. Typed Array) unterstützen, können XMLHttpRequest zum Senden von Binärdaten verwenden. Die Level-2-Spezifikation unterstützt den Aufruf der send()-Methode zum Senden von Blob- und ArrayBuffer-Objekten
XML/HTML-CodeInhalt in die Zwischenablage kopieren- var a = new Uint8Array([8,6,7,5,3, 0,9]); var xhr = new XMLHttpRequest(); xhr.open ", true); console.log(a); xhr.send(a.buffer);

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.
