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.
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ückruffunktiondes 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 ...);
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); }
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!