Horst Reinelt: Kind-Fenster mit schließen

Hallo liebes Forum!

Manchmal sehe ich den Wald vor lauter Bäumen nicht:

Aus einem Frame eines aus zwei Frames bestehenden Browserfensters heraus wurde ein Fenster mit window.open geöffnet.
Nun soll das so geöffnete Fenster mit geschlossen werden, wenn das Haupt-Browserfenster geschlossen wird; jedoch nicht, wenn alleine die Frameset-Seite durch eine andere ersetzt wird.

Eigentlich dachte ich, mit den herkömmlichen Frame-Zugriffsmöglichkeiten das Problem lösen zu können, aber wie gesagt - momentan sehe ich den Wald vor lauter Bäumen nicht.

Für Hinweise bedanke ich mich,

Grüße
  Horst

  1. Hallo Horst,

    Aus einem Frame eines aus zwei Frames bestehenden Browserfensters heraus wurde ein Fenster mit window.open geöffnet.
    Nun soll das so geöffnete Fenster mit geschlossen werden, wenn das Haupt-Browserfenster geschlossen wird; jedoch nicht, wenn alleine die Frameset-Seite durch eine andere ersetzt wird.

    Bei der window.open()-Funktion kannst du im zweiten Parameter das Attribut "dependent" auf "yes" setzen. siehe: http://selfhtml.teamone.de/javascript/objekte/window.htm#open. Das funktioniert aber anscheinend nur in Netscape.

    Ansonsten kannst du natürlich mit onunload und ähnlichem arbeiten. Wichtig ist dann, dass du das Popup-Fenster nicht aus dem Frame heraus, sondern über das Frameset aufrufst. Du könntest also beispielsweise im Frameset eine Funktion "fensterOeffnen()" definieren, die du über "parent.fensterOeffnen()" aus dem Frame heraus aufrufst. In dieser Funktion wird window.open() aufgerufen und der Rückgabewert in einer globalen Variable "popupFenster" gespeichert. Sobald das Ur-Browserfenster geschlossen wird, musst du abfragen, ob das Popup-Fenster jemals geöffnet wurde und ob es noch offen ist. Trifft beides zu, so wird es geschlossen. Etwa so:

    if (popupFenster) if (! popupFenster.closed)  popupFenster.close();

    Viel Erfolg,
    Robert

    1. Hallo Robert!

      Viel Erfolg,
      Robert

      Super, hat geklappt. Danke.