seppel: Fensterinstanz

Nabend miteinander,

ich rufe von einer Seite aus ein neues Fenster auf, in dem Informationen angezeigt werden.

function open_window(bez, url)  // im Basis-Fenster
{
   var WinBez = window.top.open(url, bez, "...");
}

zu diesen Information besteht die Möglichkeit Kommentare anzulegen. Dies geschiet wieder in einem neuen Fenster (ist so gewünscht...)

Jetzt meine Frage:

beim Schliessen dieses 3. Fensters soll das rufende (das 2.) einen reload bekommen - damit die hinzugefügten Kommentare angezeigt werden.

function close()  // im 3. Fenster
{
   window.opener.location.reload();
   window.opener.focus();
   self.close();
}

Problem ist nur, wenn das Fenster in der zwischenzeit geschlossen wurde...ich habe hier in den Objektreferenzen die Eigenschaft closed gefunden und will sie abfragen:

...
if( ? .WinBez.closed == true) { bla }  // ebenfalls im 3. Fenster
...

natürlich kennt aber mein 3. Fenster diese WinBez nicht und kann auch nicht mehr auf den opener zugreifen.

Ich hoffe das ist keine zu blöde Frage, aber wie kann ich auf die Fensterinstanz(WinBez) des "Basis-Fensters" zugreifen?

Vielen Dank schon mal - Gruss und schönen Abend noch,
Seppel

  1. Ich hoffe das ist keine zu blöde Frage, aber wie kann ich auf die Fensterinstanz(WinBez) des "Basis-Fensters" zugreifen?

    In aller Regel informiert folgender gute Artikel von Sven Rautenberg darüber was geht und was nicht:
    http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

    1. In aller Regel informiert folgender gute Artikel von Sven Rautenberg darüber was geht und was nicht:
      http://aktuell.de.selfhtml.org/artikel/javascript/fensterzugriff/

      Dank Dir - guter Artikel, hab ihn grad überflogen und dabei stellt sich mir folgende Frage (bzw. bleibt die Ausgangsfrage bestehen):

      verliere ich nicht den Bezug zu parent, top und so weiter wenn das 2. Fenster weg ist? Ich meine das 3. Fenster kann dann doch nichts mehr mit top anfangen - oder? (kann es erst morgen probieren)

      Alternative? Tip? Sollte man die Script-Funktionen alle im Basis-Fenster definieren? Und wenn ja, kann das Basis-Fenster auf das 3. zugreifen wenn das 2. weg ist?

      Sorry, aber hab noch nicht so viel Erfahrung mit der Materie...

      Gruß,
      Seppel

      1. verliere ich nicht den Bezug zu parent, top und so weiter wenn das 2. Fenster weg ist? Ich meine das 3. Fenster kann dann doch nichts mehr mit top anfangen - oder? (kann es erst morgen probieren)

        Sehe ich auch so, aber der opener muss ja nicht das 2.Fenster sein, dass unverfügbar wurde.

  2. Ich hoffe das ist keine zu blöde Frage, aber wie kann ich auf die Fensterinstanz(WinBez) des "Basis-Fensters" zugreifen?

    Wenn ich das richtig verstehe hast du:

    Fenster A -> öffnet B -> öffnet C

    und du willst von C auf A zugreifen?
    Also in C:
    opener.opener.

    Du kannst jedes opener auf .closed prüfen.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Fenster A -> öffnet B -> öffnet C

      und du willst von C auf A zugreifen?
      Also in C:
      opener.opener.

      eigentlich will ich im Fenster C nur prüfen können, ob das Fenster B noch offen ist - da es sonst eine Fehlermeldung gibt, wenn ich auf ein geschlossenes Objekt reload() anwende.

      Da es mir jetzt schon öfters passiert ist, dass der reload auf window.opener.location.reload() nicht B sondern A aktualisiert hat (obwohl die Funktion in C steht!), folgende Frage:

      sollte man um sicher zu gehen immer über das Basis-Fenster A gehen?
      window.opener.opener.FensternameB.location.reload()
      geht das?

      Und! wie umgehe ich die Tatsache, dass der Bezug zu A in dem Moment verloren geht wenn B geschlossen wird...dann steht C doch ganz alleine da?! Oder nicht?!

      Danke für eure Tips, ich arbeite mich grad erst in dieses Gebiet ein.

      Gruss,
      Seppel