Christian: Abfrage ob zweites Fenster geöffnet

Hi Ihr,
kann mir jemand sagen (schreiben), wie ich abfragen kann, ob ein zweites Fenster das aus dem Hauptfenster über JavaScript geöffnet wurde, offen ist, um es darauf hin zu schließen. Mit
if(window.fenstername==true)
  window.fenstername.close();
funktioniert es nur, wenn das zweite Fenster offen ist. Ist es aber geschlossen, kennt der Browser das window.fensternamen-Objekt nicht. Ist ja auch klar, wurde ja nicht erzeugt.

vorab vielen Dank
mfg Christian

  1. Moin!

    if(window.fenstername==true)
      window.fenstername.close();
    funktioniert es nur, wenn das zweite Fenster offen ist. Ist es aber geschlossen, kennt der Browser das window.fensternamen-Objekt nicht. Ist ja auch klar, wurde ja nicht erzeugt.

    Daraus schliesse ich, dass Du bereits den Rueckgabewert von window.open() in fenstername speicherst? Das ist schon mal gut (wenn auch der Variablenname fenstername alles andere als treffend ist). Initialisiere nun einfach ganz am Anfang diese Variable:

    var fenstername = null;

    Wenn Du dann
      fenstername = window.open(...)
    durchfuehrst, wird die Referenz auf das neue Fenster in genau dieser Variable gespeichert. Nun kannst Du einfach abfragen:

    if (fenstername && !fenstername.closed) {
        fenstername.close();
        fenstername = null;
    }

    Der erste Teil der Abfrage stellt fest, ob in fenstername was vernuenftiges drinsteht. (Der Anfangswert null ist logisch false, die Fensterreferenz aber logisch true.) Falls ja, wird geprueft, ob nicht vielleicht der Benutzer schon selber das Fenster geschlossen hat. (Das kann er ja machen, was die Fenstervariable aber nicht beeinflussen wuerde.)

    Das fenstername = null stellt wieder den Anfangszustand her.

    So long