shou: verwaltung von popups

Tag,

wenn ich mittels der Funktion window.open("hallo.php", "meinFenster") ein
Fenster öffne, aber das Fenster "meinFenster" schon existiert wird es ja
gerefreshed und erhält einen focus().
Kann ich das refreshen unterdrücken?
Also wenn das Fenster schon geöffnet wurde soll es nicht neu geladen werden
sondern lediglich einen focus bekommen.

Oder gibt es soetwas wie eine funktion "sucheFenster()" ? etwa so:

  
meinFenster = sucheFenster("meinFenster");  
if(meinFenster) meinFenster.focus();  
else window.open("hallo.php", "meinFenster");  

hoffe ich habs verständlich ausgedrückt

liebe Grüße
shou

  1. Hallo,

    wenn ich mittels der Funktion window.open("hallo.php", "meinFenster") ein
    Fenster öffne, aber das Fenster "meinFenster" schon existiert wird es ja
    gerefreshed und erhält einen focus().
    Kann ich das refreshen unterdrücken?

    Nein.

    Also wenn das Fenster schon geöffnet wurde soll es nicht neu geladen werden
    sondern lediglich einen focus bekommen.

    Oder gibt es soetwas wie eine funktion "sucheFenster()" ?

    Nein. Du kannst nicht einfach so aus dem luftleeren Raum abfragen, ob ein Fenster mit einem bestimmten Namen existiert.

    Das einzige, was du machen kannst, ist die Referenz auf das neue Fensterobjekt beim Öffnen desselben speichern. Diese Referenz wird von window.open() zurückgegeben. Die speicherst du in einem Objekt unter dem Fensternamen. Dann kannst du später nachschlagen, ob schon ein Fenster mit diesem Namen existiert, und du kannst gleich das Fensterobjekt ansprechen.

      
    var geöffneteFenster = new Object();  
    function öffneFenster (name, uri) {  
       if (geöffneteFenster[name]) {  
          geöffneteFenster[name].focus();  
       } else {  
          geöffneteFenster[name] = window.open(uri, name);  
       }  
    }  
    öffneFenster("fenster1", "bla.html"); // Fenster wird geöffnet  
    öffneFenster("fenster1", "bla.html"); // Jetzt wird nur fokussiert!
    

    Mathias

    1. schöner Lösungsansatz.
      Was mache ich aber wenn das Hauptfenster geschlossen und wieder geöffnet wird? Oder der User herumklickt (seiten refresh)
      Meine Liste mit meinen Fenstern wird ja dann gelöscht.
      Hat hierfür jemand eine Lösung?

      1. schöner Lösungsansatz.
        Was mache ich aber wenn das Hauptfenster geschlossen und wieder geöffnet wird? Oder der User herumklickt (seiten refresh)
        Meine Liste mit meinen Fenstern wird ja dann gelöscht.
        Hat hierfür jemand eine Lösung?

        Popups sind doch SCH*. Die nerven nur. Aber du könntest ja deine Popups überprüfen lassen, ob das Parent noch existiert.

        1. Hi there,

          Popups sind doch SCH*. Die nerven nur. Aber du könntest ja deine Popups überprüfen lassen, ob das Parent noch existiert.

          Popups haben aber kein "parent"...

          1. Hi there,

            Popups haben aber kein "parent"...

            Dann halt den opener...

            Ich wollte damit nur das "Elternelement" beschreiben. Ich weiß - es ist kein Element. Es ist der Opener

      2. Hi there,

        Was mache ich aber wenn das Hauptfenster geschlossen und wieder geöffnet wird?

        Dann hat es ohnehin irgendeinen Inhalt, zu dem das Javascript des zuvor geschlossenen Fensters keinen Bezug mehr hat. Ein im geöffneten Fenster laufendes Javascript könnte das Schliessen des Hauptfensters mit opener.closed abfragen...

      3. Hallo,

        Was mache ich aber wenn das Hauptfenster geschlossen und wieder geöffnet wird?

        Dann kommt es nicht umhin, noch einmal window.open() aufzurufen, um wieder Kontakt zum verlorenen Sohn aufzunehmen.

        Oder der User herumklickt (seiten refresh)

        Fensterreferenzen lassen sich nicht dem folgenden Dokument übergeben. Auch hier kommt man um ein weiteres window.open() nicht umhin.

        Du kannst mal probieren, was passiert, wenn du den URI-Parameter von window.open leer lässt. Ändern sich die URI dann im Fenster?

        Mathias