Der Martin: PopUps automatisch schließen

Beitrag lesen

Hi,

Folgendes Problem: Ich habe eine Tabelle, in der Bildinformationen verlinkt sind, die in PopUps angezeigt werden können.

pfui bah! ;-)

Aufgerufen werden die einzelnen Fenster über gewöhnliche Anker-Tags:

<a href="javascript:popup ('bild1.png','bild1','400','250')">Bild 1</a>
<a href="javascript:popup ('bild2.png','bild2','400','250')">Bild 2</a>

Für Besucher ohne Javascript sind das funktionslose Links. Warum nicht die Bilder normal verlinken und bei aktivem Javascript über einen onclick-Handler als Popup aufrufen?

Da jedesmal ein anderer Fenstername vergeben wird, öfnet sich auch jedesmal ein neues Fenster. Nun würde ich gerne beim Schließen des Hauptfensters (opener) alle geöffneten PopUps - falls geöffnet - automatisch mitschließen.

Gute Idee.

Gelöscht wird dabei immer nur das zuletzt aufgerufene Fenster, da nur noch dessen Information in der Variablen  gespeichert vorliegt. Nun könnte man natürlich jedes Fenster in einer anderen Variablen speichern und versuchen, das Ganze mit einer if-Abfrage ( oder mit Switch/Case ) in den Griff zu kriegen, was den Code aber gewaltig aufblähen würde.
Frage: Gibt es vielleicht eine elegantere Lösung des Problems ... und zwar eine Lösung, die mich nicht allzu sehr überfordert ?!

Die Lösung ist so trivial wie wirksam: Speichere die Fenster-Handles beim Öffnen als Array, das mit jedem weiteren Popup einen zusätzlichen Eintrag bekommt. Lauf dann beim Schließen durch dieses Array und verfahre mit jedem Eintrag so, wie du es schon mit "win" machst: Erst prüfen, ob der Eintrag gültig ist, dann, ob das zugehörige Fenster schon geschlossen ist, wenn nicht, schließen.

Die Charta hab ich nicht gelesen ... :-p

Böser Fensterputzer!

Ciao,
 Martin

--
Zwei Kumpels sitzen vor dem Computer. "Welche Suchmaschine benutzt du eigentlich meistens?" - "Prima Vera." - "Hmm, kenn' ich gar nicht." Dann geht die Tür auf: "Schatz ich habe deine Sonnenbrille wiedergefunden!" - "Prima, Vera!"
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(