Die Kommunikationsmethode unterscheidet sich, je nachdem, ob das SRC-Attribut im IFRame mit derselben Domäne oder der Cross-Domain-Verbindung verknüpft ist.
1. Kommunikation zwischen Vater und Sohn Seiten unter derselben Domäne
Übergeordnete Seite Elternschaft.html
Die Codekopie lautet wie folgt:
<html>
<kopf>
<script type = "text/javaScript">
Funktion sagt () {
alert ("parent.html");
}
Funktion callChild () {
myframe.window.say ();
myframe.window.document.getElementById ("button"). value = "CALL END";
}
</script>
</head>
<body>
<input id = "button" type = "button" value = "rufen Sie die Funktion in child.html Says ()" onclick = "callChild ()"/> auf "/> auf."/>
<Iframe name = "myFrame" src = "child.html"> </iframe>
</body>
</html>
Child.html
Die Codekopie lautet wie folgt:
<html>
<kopf>
<script type = "text/javaScript">
Funktion sagt () {
Alert ("Child.html");
}
Funktion CallParent () {
parent.say ();
parent.window.document
}
</script>
</head>
<body>
<input id = "button" type = "button" value = "rufen Sie die Funktion Say () in parent.html" onclick = "callParent ()"/> auf
</body>
</html>
Methodenaufruf
Die übergeordnete Seite ruft die untergeordnete Seitenmethode auf: Framename.Window.ChildMethod ();
Die untergeordnete Seite ruft die übergeordnete Seitenmethode auf: Eltern.Window.ParentMethod ();
DOM -Elementzugriff
Nachdem Sie das Fenster erhalten haben. Dokumentobjekt der Seite, können Sie auf das DOM -Element zugreifen.
Dinge zu beachten
Um sicherzustellen, dass der Vorgang nach dem Laden des Iframe ausgeführt wird, wird ein Fehler auftritt, wenn der Iframe noch nicht geladen wurde, die Methoden oder Variablen aufzurufen. Es gibt zwei Möglichkeiten, um festzustellen, ob ein Iframe geladen wird:
1. Verwenden Sie das Onload -Ereignis auf Iframe
2. Verwenden Sie das Dokument.
2. Kommunikationsmethode für übergeordnete Personalposition mit Cross-Domain
Wenn der Iframe eine externe Seite verlinkt, kann die Kommunikationsmethode unter demselben Domänennamen nicht verwendet werden, da der Sicherheitsmechanismus nicht verwendet wird.
Die übergeordnete Seite übergibt Daten an untergeordnete Seiten
Die Implementierungstechnik besteht darin, den Hash -Wert des Standortobjekts zu verwenden und Kommunikationsdaten darüber zu übergeben. Fügen Sie nach dem SRC des Iframe auf der übergeordneten Seite eine zusätzliche Datenzeichenfolge hinzu und können Sie dann auf irgendeine Weise die Daten hier sofort erhalten, zum Beispiel:
1. Stellen Sie den Timer in der Unterseite über die SetInterval
2. Dann führt die Unterseite eine entsprechende logische Verarbeitung aus, die auf diesen Dateninformationen basiert.
Die untergeordnete Seite übergibt Daten an die übergeordnete Seite
Die Implementierungstechnik 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. Dadurch verwendet es dann das Implementierungsprinzip der ersten Kommunikationsmethode oben und übergibt die Daten der Kinderseite an den Proxy -Iframe. Da sich der Proxy -Iframe und die Hauptseite in derselben Domäne befinden, kann die Hauptseite diese Daten mit derselben Domäne erhalten. Verwenden Sie window.top oder window.parent.Parent, um einen Verweis auf das Fensterobjekt der obersten Ebene des Browsers zu erhalten.