Christoph Schnauß: iFrames und EventHandler in Netscape, Opera, mozilla

Beitrag lesen

hallo Forum ;-)

beinahe hätte das eine "Zwei-Frames-Frage" werden können ...

Folgende Problemstellung: ich habe zwei iFrames nebeneinander positioniert, die sich teilweise überlappen (unterschiedliche z-index-Werte). Links einer, der eine Reihe Verweise enthält und so etwas wie eine Menüführung ist, rechts ein "main"-Frame.
Keine Sorge, die Verweise öffnen sich, die Frame-Inhalte ändern sich in beiden bei allen getesteten Browsern  -  allerdings leider nur so lange, wie ich beide iFrames auf "visible" stehen lasse. Jetzt wollte ich aber gerne, daß der linke iFrame auf "hidden" gesetzt werden kann, sobald in ihm ein link geklickt wird, also im Prinzip dasselbe, was man mit Layer-Konstruktionen erreichen kann. Und da hängt es.

Ich habe also eine Javascript-Funktion, die das Verbergen/Sichtbarmachen eigentlich ermöglichen sollte (und das bei Layer-Konstruktionen auch tut). Jetzt rufe ich im linken iFrame einen Verweis auf nach dem Schema:

<a href="neueSeite.htm" target="iframe_rechts" onclick="iframe_links_schliessen()">neueSeite.htm</a>

und das klappt auch völlig problemlos mit dem IE 5.0, 5.5 und 6. Prima. Bloß sämtliche anderen spielen nicht mit. Netscape, Opera, Konqueror ... öffnen zwar die "neueSeite.htm" im vorgegebenen rechten iFrame, denken aber nicht daran, den linken iFrame auf "hidden" zu setzen. Ich habs mit so ziemlich allen EventHandlern durchgespielt, immer mit demselben Ergebnis. Sobald ich die beiden iFrames in eigene Layer (div's) einbinde und den EventHandler nicht auf den iFrame, sondern auf den Layer anwende, machen sie es allerdings auch. Der einzige, der trotzdem nicht mitspielt, ist mozilla, dem ich für ein iFrame noch kein "hidden" bzw. "display:none" beibringen konnte, er zeigt iFrames grundsätzlich an.

Kennt jemand eine Konstruktion, mit der ich ohne den Umweg über zusätzliche Layer Netscape, Opera und Konqueror beibringen kann, EventHandler zu beachten, die das "Verstecken" eines iFrames bewirken sollen ?

Der Grund für den Einsatz von iFrames: in Layer (div's) kann ich keine wechselnden externen HTML-Dokumente einbinden. Ausweichen auf eine "normale" Framekonstruktion geht auch nicht, weil ich dann die Menüfunktionen innerhalb des Frames in Layer packen müßte, die bekanntlich die Frame-Begrenzung nicht überschreiten können.

Auf Netscape 4.7x nehme ich übrigens keine Rücksicht.

Grüße aus Berlin

Christoph S.