Überwachung, ob Fenster bereits geöffnet ist

gert

Grünschnabel
1. Mit folgender Zeile öffne ich ein neues Fenster:

<body onload="openchat($id,$id_selbst)"> (Variable stammen aus PHP und sollen jetzt nicht weiter erklärt werden)

2. Die Funktion openchat() liegt in einer externen java.js Datei und sieht so aus:

function openchat(id,id_selbst)
{
//monitor_b = screen.width;
//monitor_h = screen.height;
//l=monitor_b/2-b/2;
//t=monitor_h/2-h/2;
seite="chat.php?id="+id+"&id_selbst="+id_selbst;
atrib="left=475,top=0,width=300,height=530,hotkeys=no,scrollbars=no,menubar=no,status=no,resizable=no,location=no";
fenster=id;
window.open(seite,fenster,atrib).focus();
}

Diese Funtion arbeitet in dieser Version bereits seit Langem sehr stabil. Das aufrufende Script unter 1. wird periodisch alle 30s aufgerufen, um das neue Fenster im Bedarfsfalle zu öffnen.
Nun soll jedoch überwacht werden, ob das Fenster bereits geöffnet ist, denn dann soll die Funktion openchat() nicht ausgeführt werden.
Wer kann helfen, vielen Dank im Voraus
 
Speichere das Fenster in einer Variablen, dann kannst du daran ermitteln, ob es entweder noch garnicht geöffnet wurde, oder aber geschlossen wurde:
Code:
win=false;
function openchat(id,id_selbst)
{
//monitor_b = screen.width;
//monitor_h = screen.height;
//l=monitor_b/2-b/2;
//t=monitor_h/2-h/2;
seite="chat.php?id="+id+"&id_selbst="+id_selbst;
atrib="left=475,top=0,width=300,height=530,hotkeys=no,scrollbars=no,menubar=no,status=no,resizable=n o,location=no";
fenster=id;
if(!win || win.closed)
  {
    win=window.open(seite,fenster,atrib);
    win.focus();
  }
}
 
habe das Script jetzt so erweitert, aber es hat sich nichts geändert, er öffnet immer wieder dieses Fenster, bzw. wenn es bereits geöffnet ist, dann aktuallisiert er es und genau das soll nicht passieren...
 
Das aufrufende Script unter 1.) wird alle 30s per cronjob ausgeführt. Dabei holt es sich eine Information aus der Datenbank, ob die Funktion openchat() unter 2.) geöffnet werden soll. Nur soll dann die Funktion openchat() prüfen, ob das Fenster bereits geöffnet ist oder nicht, und nur wenn es nicht oder noch nicht geöffnet ist, dann soll die Funktion openchat() in Aktion treten.
Ich hoffe, mich verständlich ausgedrückt zu haben, rufe auch gern zurück bei hinterlassen der Tel-Nummer.
Vielen Dank, Gert
 

Neue Beiträge

Zurück