Heim >Web-Frontend >js-Tutorial >js-Kommunikation zwischen Iframe-Unterseite und übergeordneter Seite in derselben Domäne oder unterschiedlichen Domänen_Javascript-Kenntnisse
js-Kommunikation zwischen Iframe-Unterseite und übergeordneter Seite in derselben Domäne oder unterschiedlichen Domänen_Javascript-Kenntnisse
WBOYOriginal
2016-05-16 16:49:381173Durchsuche
Die Kommunikationsmethoden zwischen Iframe-Unterseiten und übergeordneten Seiten variieren je nachdem, ob das src-Attribut im Iframe ein Link zur gleichen Domäne oder ein domänenübergreifender Link ist.
1. Kommunikation zwischen übergeordneten und untergeordneten Seiten in derselben Domäne
Die übergeordnete Seite ruft die Methode der untergeordneten Seite auf: FrameName.window.childMethod();
Die untergeordnete Seite ruft auf Methode der übergeordneten Seite: parent.window.parentMethod(); DOM-Elementzugriff
Nachdem Sie das window.document-Objekt der Seite erhalten haben, können Sie auf das DOM-Element zugreifen Notizen
Stellen Sie sicher, dass Sie den Vorgang ausführen, nachdem der Iframe geladen wurde. Wenn Sie mit dem Aufrufen von Methoden oder Variablen beginnen, bevor der Ladevorgang abgeschlossen ist, tritt ein Fehler auf. Es gibt zwei Möglichkeiten, um festzustellen, ob der Iframe geladen wurde:
1. Verwenden Sie das Onload-Ereignis auf dem Iframe
2. Verwenden Sie document.readyState=="complete", um
zu ermitteln
2. Domänenübergreifende Kommunikationsmethode für übergeordnete und untergeordnete Seiten
Wenn der Iframe mit einer externen Seite verknüpft ist, kann die Kommunikationsmethode unter demselben Domänennamen nicht verwendet werden Sicherheitsmechanismus. Die übergeordnete Seite leitet Daten an die untergeordnete Seite weiter
Der Trick besteht darin, den Hashwert des Standortobjekts zu verwenden und die Kommunikationsdaten darüber weiterzuleiten. Fügen Sie einfach eine zusätzliche Datenzeichenfolge nach dem src des Iframes auf der übergeordneten Seite hinzu, und dann können Sie die Daten hier auf irgendeine Weise sofort abrufen, zum Beispiel:
1 Pass in Unterseite Die setInterval-Methode stellt den Timer ein und überwacht Änderungen in location.href, um die oben genannten Dateninformationen zu erhalten
2 Dann führt die untergeordnete Seite basierend auf diesen Dateninformationen eine entsprechende logische Verarbeitung durch
Die Die untergeordnete Seite berichtet an die übergeordnete Seite. Die Technik zum Übergeben von Daten
besteht darin, einen Proxy-Iframe zu verwenden, der in die untergeordnete Seite eingebettet ist und in derselben Domäne wie die übergeordnete Seite bleiben muss und dann die Implementierung vollständig nutzt Prinzip der ersten Kommunikationsmethode oben: Die Daten der Seite werden an den Proxy-Iframe übergeben. Da sich der Proxy-Iframe und die Hauptseite in derselben Domäne befinden, kann die Hauptseite die Daten über denselben abrufen Domänenmethode. Verwenden Sie window.top oder window.parent.parent, um einen Verweis auf das Fensterobjekt der obersten Ebene des Browsers abzurufen.
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