Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung der neuen Funktionen von HTML5: Dokumentübergreifende Nachrichtenübermittlung

Ausführliche Erläuterung der neuen Funktionen von HTML5: Dokumentübergreifende Nachrichtenübermittlung

黄舟
黄舟Original
2017-03-30 11:55:521937Durchsuche

1. Gleiche Domänenbeschränkung

Die sogenannte „gleiche Domänenbeschränkung“ bezieht sich auf Aus Sicherheitsgründen erlauben Browser Skripten nur die Kommunikation mit Adressen desselben Protokolls, desselben Domänennamens und desselben Ports.

2. window.postMessage-Methode

Browser Einschränkungen sind unterschiedlich Kommunikation zwischen Fenstern (einschließlich iFrame-Fenstern), es sei denn, die beiden Fenster laden Webseiten unter demselben Domänennamen. Die Methode window.postMessage ist eine spezielle API zur Lösung dieses Problems, die unterschiedliche Domänen zulassen kann Namen. Das Format der

postMessage-Methode ist wie folgt:

targetWindow.postMessage(message, targetURL[, transferObject]);

Das Zielfenster im obigen Code ist die Variable, auf die es verweist das Zielfenster, message ist die zu sendende Nachricht und targetURL ist die URL des angegebenen Zielfensters. Wenn sie nicht mit der URL übereinstimmt, werden keine Informationen gesendet Das wird zusammen mit den Informationen gesendet. Es wird davon ausgegangen, dass ein neues Fenster auf der aktuellen Webseite angezeigt wird. Hören Sie sich dann die Nachricht Ereignis auf der aktuellen Webseite an Gibt an, dass die

-Rückruffunktion

des Nachrichtenereignisses „receiveMessage“ ist. Beim Empfang von Informationen aus anderen Fenstern wird die Funktion „receiveMessage“ als Parameter akzeptiert

im Parameter gibt die Quell-URL der Informationen an. Wenn die URL die Anforderungen nicht erfüllt, enthält das Attribut event.data zusätzlich zu Herkunft und Daten auch die tatsächlich gesendeten Informationen ein Quellattribut, das auf das Fensterobjekt verweist, das die Informationen an die aktuelle Webseite sendet. >
var popup = window.open(...popup details ...);
Als nächstes verwenden Sie die postMessage-Methode, um Informationen an das neue Fenster auf der aktuellen Webseite zu senden 🎜>Der erste Parameter der postMessage-Methode im obigen Code ist die tatsächlich gesendete Information, und der zweite Parameter ist die angegebene. Der Domänenname des sendenden Objekts muss http://example.org sein Ist dies nicht der Fall, werden die Informationen nicht gesendet.

Stellen Sie abschließend den folgenden Code im Popup-Fenster bereit. Im obigen Code sind einige Dinge zu beachten von gefilterten Informationen in der Funktion „receiveMessage“ werden verarbeitet. Zweitens ist die URL des in der Methode „postMessage“ angegebenen Zielfensters ein Sternchen, das angibt, dass diese Nachricht an jede URL gesendet werden kann. Im Allgemeinen werden diese beiden Methoden nicht empfohlen, da sie nicht sicher genug sind und möglicherweise von der anderen Partei gefiltert werden.

window.addEventListener('message', receiveMessage, false);
function receiveMessage(e) {    
if (e.origin != 'http://example.org') {        
return;
    }

    console.log(e.data);
}
Alle Browser unterstützen diese Methode, aber IE8 und IE9 erlauben der postMessage-Methode nur die Kommunikation mit iFrame-Fenstern und nicht mit neuen Fenstern. IE10 ermöglicht die Kommunikation mit neuen Fenstern, jedoch nur unter Verwendung des IE-spezifischen MessageChannel-Objekts

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der neuen Funktionen von HTML5: Dokumentübergreifende Nachrichtenübermittlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn