IE8 Fehler, wenn ich versuche, eine Funktion aufzurufen, die auf der übergeordneten Seite in einer iFrame
Ich habe eine übergeordnete Seite mit einer Funktion codiert, wie diese:
function testfunction() {
alert('hi');
}
Ist diese Seite ein iFrame codiert wie diese:
<iframe src="testinside.htm"></iframe>
Testinside.htm hat dieser link ruft die Funktion auf der übergeordneten Seite:
<a href="#" onclick="parent.testfunction();">Test</a>
In FireFox und Chrome, das funktioniert alles ganz gut, aber in IE8, bekomme ich diese Fehlermeldung:
Objekt unterstützt diese Eigenschaft oder Methode
Was habe ich falsch gemacht?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, das Skript Abschnitt:
- und das iframe-Element:
dann stellen Sie sicher, laden Sie den test mit dieser url:
Aus irgendeinem Grund muss das script type "text/javascript" für Sie zu arbeiten. Das nächste problem ist cross-domain-Probleme. Der iframe
src
muss exakt mit der url der übergeordneten.Haben Sie versucht
window.parent.testfunction()
? Ich glaube mich zu erinnern ein Problem ähnlich wie diese.Haben Sie versucht, die Definition der übergeordneten Funktion als
window.testfunction = function(){}...
Ich versuche nur zu erraten, warum der IE würde nicht auf diese. Vielleicht Globale Funktionen sind nicht automatisch gebunden, um
window
im IE.Wenn Sie können nicht herausfinden, könnten Sie versuchen, polling von den Eltern auf das Kind, warten einige
hasBeenClicked
Methode zurücktrue
.parent
bezieht sich nur auf den übergeordneten Rahmen, nicht den übergeordneten Rahmen der global-Objekt. Wenn das nicht funktioniert, versuchen Siewindow.parent.window.testfunction()
Ich hatte ein ähnliches problem.
War ich versucht, Zugriff auf eine variable definiert, die in der übergeordneten iframe
<script type="text/javascript" src="example.js"/>
- Datei, ohne Erfolg, aber wenn ich zog die Variablen-definition in den body des iframe in<script type="text/javascript"> var myVar = ""</script>
alle funktioniert.