Draganis: Überprüfen ob Fenster bereits geöffnet ist

Hallo,

ich habe folgendes Konstrukt von Seite mit Frames: (tolles Deutsch :P)
Ein Hauptframe und ein Statusframe, der zeigt unter welchem Namen man eingeloggt ist, wieviele User online sind und ob man neue PN's aussem Forum bekommen hat.
Der Statusframe läd sich immer wieder schön brav neu und schaut nach neuen Messages (PNs).
Jetzt gibt es für die User 3 Möglichkeiten die PNs zu erhalten:
1. übers Message Center, ohne grossen Schnickschnack
2. über ein Popup, welches sich öffnet, sobald der Statusframe mitbekommt, dass ne Message angekommen iss
3. über eine Art Messenger.
Der User kann in seinen Einstellungen einstellen wie er seine PNs gern haben würd.

Jetzt gibt es nur ein winziges Problem mit Möglichkeit 3
Mein Webspaceprovider hat nix gegen die sich immer wieder neu ladende Statuszeile, aber Verbindungen, die offen gehalten werden mag der nicht.

Also muss ich die Daten über den Statusframe an die jeweiligen Messenger Fenster weitergeben.
Wenn also eine neue PN ankommt, soll die Statuszeile zuerst überprüfen ob das PN-Fenster XY bereits offen ist, ist dies nicht der Fall, soll es geöffnet werden, dann sollen die Daten via JS ins Fenster geschrieben werden.

Mein Problem besteht nun darin, wie ich abfrage ob das Fenster XY bereits geöffnet ist. Ich hab bereits in den Forenarchiven hier gewült und gewütet, hab aber nirgens ne Erklärung dafür bekommen.

Hoffe ihr könnt mir helfen, vielen Dank

Sven

  1. moin Draganis :)

    Mein Problem besteht nun darin, wie ich abfrage ob das Fenster XY bereits geöffnet ist. Ich hab bereits in den Forenarchiven hier gewült und gewütet, hab aber nirgens ne Erklärung dafür bekommen.

    falls dein Fenster XY irgendwann mal mit open(..) geöffnet wurde kannst du mit der Methode closed() erfragen, ob es schon geschlossen wurde. (ergo noch offen ist wenn diese false zurück gibt)

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. moin Draganis :)

      Mein Problem besteht nun darin, wie ich abfrage ob das Fenster XY bereits geöffnet ist. Ich hab bereits in den Forenarchiven hier gewült und gewütet, hab aber nirgens ne Erklärung dafür bekommen.

      falls dein Fenster XY irgendwann mal mit open(..) geöffnet wurde kannst du mit der Methode closed() erfragen, ob es schon geschlossen wurde. (ergo noch offen ist wenn diese false zurück gibt)

      Klappt so nicht ganz... Da die Seite, von der das Fenster geöffnet wurde, dauernd geschlossen und geöffnet wird iss natürlich die Variable vom XXX=window.open(); auch futsch.

      liebe Grüße aus Berlin
      lina-

      1. moin Draganis :)

        Klappt so nicht ganz... Da die Seite, von der das Fenster geöffnet wurde, dauernd geschlossen und geöffnet wird iss natürlich die Variable vom XXX=window.open(); auch futsch.

        hmmm *grybel* dann seh ich spontan keine Möglichkeit... - sorry!

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
        1. moin Draganis :)

          Klappt so nicht ganz... Da die Seite, von der das Fenster geöffnet wurde, dauernd geschlossen und geöffnet wird iss natürlich die Variable vom XXX=window.open(); auch futsch.

          hmmm *grybel* dann seh ich spontan keine Möglichkeit... - sorry!

          liebe Grüße aus Berlin
          lina-

          trotzdem danke lina...
          sagma, besteht denn evtl die möglichkeit die variable vom fenster-öffnen in nem andren frame zu speichern? *grübel* das müsste doch theoretisch funktionieren, oder?

          1. Hi,

            ja, bau dir eine Art Window-Handler: Gib dem ständig offenen Fenster einfach ein Array oder eine Fensterverwaltung, in dem du die Window-Variablen aufhebst...

            MfG
            Rouven

            --
            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
          2. Hi,

            sagma, besteht denn evtl die möglichkeit die variable vom fenster-öffnen in nem andren frame zu speichern? *grübel* das müsste doch theoretisch funktionieren, oder?

            Ja, das geht.
            Das andere Fenster kannst du normalerweise mit "parent.NAMEdesFensters" ansprechen, wenns z.B. "fenster" heißt, kannst du mit "parent.fenster.XXX=window.open()" im anderen Fenster eine Referenz auf das Popup speichern und auch mit "if(parent.fenster.XXX){...}" wieder abfragen.
            Das gibt true zurück, wenn das Fenster schonmal geöffnet wurde.
            Da weißt du aber noch nicht, obs nicht vielleicht schon wieder geschlossen wurde.
            Das mußt du dann mit "window.closed" überprüfen.
            Ist übrigens keine Methode, sondern eine Eigenschaft des window-Objektes:

            ***********************

            if(parent.fenster.XXX)
            {
              if(!parent.fenster.XXX.closed)
              {parent.fenster.XXX.location.href='anzeigeseite.html';}
              else
              {parent.fenster.XXX=window.open();}
            }
            else
            {
            parent.fenster.XXX=window.open();
            }

            ************************

            Du kannst natürlich auch das ganze Script in das andere Fenster packen:

            *****************
            function FensterOeffnen()
            {
              if(XXX)
              {
                if(!XXX.closed)
                {XXX.location.href='anzeigeseite.html';}
                else
                {XXX=window.open();}
              }
              else
              {
              XXX=window.open();
              }
            }
            *****************

            und die Funktion dann so aufrufen:

            *****************

            parent.fenster.FensterOeffnen();

            *****************

            Gruß
            Peter