Jense: Mit onunload mehrere Fenster schliessen im IE...

Hallo allerseits,

ich öffne mehrere Fenster mit window.open. Wenn dass Elterfenster geschlossen werden soll, und man noch angemeldet ist kommt ein onbeforeunload Dialog. Wird da der Schliessvorgang bestätigt, sollte eigentlich das onunload eintreten.

Hier wird eine Schleife durchlaufen und alle noch offenen "Kindfenster" werden geschlossen; aber nur im FF. Im IE bleiben die Fenster offen, weil onunload offensichtlich nach dem onbeforeunload gar nicht mehr ausgeführt wird. Gibts dafür eine Lösung oder einen Trick der bewirkt, dass es auch im IE funktioniert? Und: gibt es eigentlich für die geöffneten Fenster ein internes array was man ansprechen kann so dass man das nicht selber beaufsichtigen muss?
Bin gespannt auf eure Antworten und bedanke mich schon mal ganz artig vorab.

Gruss Jense

  1. Hallo,

    Gibts dafür eine Lösung oder einen Trick der bewirkt, dass es auch im IE funktioniert?

    Keine Ahnung - sehr unwahrscheinlich. Wenn deine Beobachtung stimmt, dann geht es über unload nicht. Hast du es denn mal beim beforeunload probiert?

    Und: gibt es eigentlich für die geöffneten Fenster ein internes array was man ansprechen kann so dass man das nicht selber beaufsichtigen muss?

    Nein. Wenn du die von window.open zurückgegebene window-Referenz nicht speicherst, dann kannst später du nicht herausfinden, ob ein Fenster geöffnet wurde.

    Mathias

    1. Hi Mathias,

      Keine Ahnung - sehr unwahrscheinlich. Wenn deine Beobachtung stimmt, dann geht es über unload nicht. Hast du es denn mal beim beforeunload probiert?

      Über beforeunload geht es schon, aber dann würden die "Unterfenster" in jedem Fall geschlossen, da die Abfrage ob man denn wirklich das/ die Fenster schliessen möchte ja erst am Schluss kommt (es sei denn man kann auf diese Abfrage reagieren - aber wie?). Alternativ könnte man natürlich nochmal eine Abfrage vorschalten, dann muss der User aber immer zweimal bestätigen, dass er das Fenster schliessen möchte. Ist also eher keine Lösung.

      Dank Dir für die Antwort!

      Gruss Jense