molily: verwaltung von popups

Beitrag lesen

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