In diesem Artikel wird hauptsächlich die detaillierte Erklärung von HTML5 window.postMessage und Cross-Domain vorgestellt, die von großem praktischem Wert ist. Freunde in Not können darauf verweisen
Im vorherigen Artikel , wir haben über die Same-Origin-Richtlinie des Browsers gesprochen, die verhindert, dass Seiten aus verschiedenen Domänen auf die Methoden und Attribute der anderen zugreifen. Außerdem werden die vorgeschlagenen Lösungen zur Lösung des domänenübergreifenden Problems der Same-Origin-Richtlinie erläutert: Subdomain-Proxy, JSONP und CORS . In diesem Artikel wird HTML5 window.postMessage näher erläutert. Mit der postMessage-API kann eine domänenübergreifende Kommunikation zwischen Dokumenten auf sichere und kontrollierbare Weise erreicht werden. JavaScript-Code von Drittanbietern kann auch mit externen Dokumenten kommunizieren, die in Iframes geladen werden.
HTML5 window.postMessage API
HTML5 window.postMessage ist eine sichere, ereignisbasierte Messaging-API.
postMessage sendet eine Nachricht
Rufen Sie die postMessage-Methode im Quellfenster auf, in das die Nachricht gesendet werden muss, um die Nachricht zu senden.
Quellfenster
Das Quellfenster kann ein globales Fensterobjekt oder die folgenden Fenstertypen sein:
iframe im Dokumentfenster:
1 2 |
|
Von JavaScript geöffnetes Popup-Fenster:
1 |
|
Das übergeordnete Fenster des aktuellen Dokumentfensters:
1 |
|
Öffnet das Fenster des aktuellen Dokuments:
1 |
|
Nachdem Sie das Quellfensterobjekt gefunden haben, können Sie die postMessage-API aufrufen, um eine Nachricht an das Zielfenster zu senden:
1 |
|
postMessageDie Funktion empfängt Zwei Parameter: Der erste ist die zu sendende Nachricht, der zweite ist die Quelle des Quellfensters.
Hinweis: Die Nachricht kann nur empfangen werden, wenn die Quelle des Zielfensters mit dem in der postMessage-Funktion übergebenen Quellparameterwert übereinstimmt.
postMessage-Nachricht empfangen
Um die zuvor vom Quellfenster über postMessage gesendete Nachricht zu empfangen, müssen Sie nur das Nachrichtenereignis im Zielfenster registrieren und das Ereignis binden Abhörfunktion. Nachrichten können in Funktionsparametern abgerufen werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Die Funktion zum Abhören von Nachrichtenereignissen empfängt einen Parameter, eine Ereignisobjektinstanz, die drei Attribute aufweist:
Daten Senden Die spezifische Nachricht
Ursprung der sendenden Nachrichtenquelle
Quelle Das Fensterobjekt des sendenden Nachrichtenfensters Referenz
Hinweis
Sie können den zweiten Parameter der postMessage-Funktion auf * setzen, wodurch das Senden der Nachricht übersprungen wird Überprüfen Sie beim Senden domänenübergreifender Nachrichten die Quelle.
postMessage kann nur String--Informationen senden.
Instanz
Quellfenster
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
Zielfenster win.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
Rezension
Durch das Studium dieses Artikels habe ich gelernt, wie man die postMessage-API von HTML5 für die Kommunikation zwischen Fenstern verwendet, und habe auch gelernt, dass sie zum Erreichen übergreifender Ergebnisse verwendet werden kann. Domänenkommunikation; modernes Surfen Grundsätzlich unterstützen alle Browser postMessage, aber für einige alte Browser wie IE7 usw. können bestimmte Alternativen für die Datenkommunikation verwendet werden, wie z. B. window.name, urlquery Zeichen und Hash Fragmente usw.
【Verwandte Empfehlungen】
1. Besondere Empfehlung: Version „php Programmer Toolbox“ V0.1 herunterladen
2. Kostenloses h5-Online-Video-Tutorial
3. php.cn Original-HTML5-Video-Tutorial
Das obige ist der detaillierte Inhalt vonHTML5 window.postMessage und domänenübergreifende Tutorials. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!