Script in anderem Frame ausführen
Bruno da Gizmo
- javascript
0 Der Martin
0 donp
0 Steel
Habe jetzt schon an mehreren Quellen gelesen dass das Script wie folgt lauten müsste, wenn man ein Script in einem anderem Frame öffnen möchte:
parent.NameDesFrames.NameDerMethode() bzw.
parent.Frames[#].NameDerMethode()
Funktioniert bei mir aber leider nicht!? Was kann das für Ursachen haben? Hatte schon jemand einen ähnlichen Fall?
Zu den Details:
Der Frame in dem ich die Methode öffnen möchte heißt "bildarchiv" in dem die Methode die ich verwenden möchte eingebunden wird (<script type="text/JavaScript" src="tsaa.js"></script>); in dieser tsaa.js-Datei ist die Methode dann zu finden die ich ausführen möchte.
Aus dem selben Frame (bildarchiv) geht das; aus einem iframe im Frame "bildarchiv" funktioniert es nicht... kann es sein das es da für iframes eine Sonderreglung gibt?
Schon mal danke!
Hallo Bruno,
Habe jetzt schon an mehreren Quellen gelesen dass das Script wie folgt lauten müsste, wenn man ein Script in einem anderem Frame öffnen möchte:
parent.NameDesFrames.NameDerMethode() bzw.
parent.Frames[#].NameDerMethode()
ja, das ist richtig - bis auf eine Kleinigkeit: Der Name des Arrays wird mit kleinem Anfangsbuchstaben geschrieben, also frames[]. Javascript ist, wie viele andere Programmiersprachen auch, case-sensitive.
Funktioniert bei mir aber leider nicht!? Was kann das für Ursachen haben?
Vermutlich die Same Origin Policy. Javascript darf nur auf Ressourcen zugreifen, die von derselben Domain stammen wie das Script selbst.
Warum hast du nicht mal darauf geachtet, welche Fehlermeldung dein Browser auswirft?
kann es sein das es da für iframes eine Sonderreglung gibt?
Nein. Höchstens bei der Adressierung des iframe-Dokuments vom Hauptdokument aus: Hier ist der Weg über das parent-Objekt natürlich Unsinn.
So long,
Martin
Hallo Martin,
[...] die Same Origin Policy. Javascript darf nur auf Ressourcen zugreifen, die von derselben Domain stammen wie das Script selbst.
Das gilt aber nicht immer, doch halt... Konfuzius sagt: "Der Wissende redet nicht. Wer redet, der weiß nicht."
Gruß, Don P
Hallo,
Konfuzius sagt: "Der Wissende redet nicht. Wer redet, der weiß nicht."
Man sollte immer wissen, was man sagt.
Aber keinesfalls alles sagen, was man weiß. ;-)
Schönes Wochenende,
Martin
Hi!
parent.NameDesFrames.NameDerMethode() bzw.
parent.Frames[#].NameDerMethode()
Martin hat ja schon so einiges gesagt. Mir faellt hier nur auf, dass deine Beispiele allesamt fuer ein Frameset ausgelegt sind. Also etwas in einem Frame im Elternelement aufgerufen werden soll.
Bei dir wird nicht ganz klar wie deine Konstellation nun aussieht. Angenommen du moechtest aus einem IFrame eine Funktioin aus dem Elterndokument aufrufen:
'parent.myFunction();' funktioniert da eigentlich ganz normal. Von einem iFrame ins Elternteil und wieder runter in ein Geschwisterframe (oder auch sich selbst) funktioniert dann wieder wie du es angedeutet hast.
Wenn da trotzdem was nicht klappt, dann solltest Du uns mehr Code geben.