existenz eines fensters überprüfen
Julian
- javascript
0 Jenny0 Struppi0 rainer groth0 Struppi
Hi,
kann ich irgendwie rausfinden ob ein fenster xy existiert?
if (fenstername) mag anscheinend nicht...
Grüße,
Julian
Hi Julian
kann ich irgendwie rausfinden ob ein fenster xy existiert?
if (fenstername) mag anscheinend nicht...
Versuchs mit window.closed
http://selfhtml.teamone.de/javascript/objekte/window.htm#closed
allerdings brauchst du dafür die ID des Fensters statt des Namens.
Ansonsten könntest du mittels try/catch oder onError einen Zugriff versuchen
und den Fehler abfangen.
Tschüß
Jenny
kann ich irgendwie rausfinden ob ein fenster xy existiert?
if (fenstername) mag anscheinend nicht...
Nicht wirklich. Wenn du den Namen des Fensters weißt, kannst du es schliessen
window.open('', 'fenstername').close();
aber du kommst nur mit open an die nötige Referenz.
Struppi.
Hallo Julian,
kann ich irgendwie rausfinden ob ein fenster xy existiert?
Na, klar ! SCNR
Einige Hinweise, um die Methode window.close() fehlermeldungsfrei aufrufen zu koennen:
Die zu schliessende window-Instanz muss als Wert einer Variablen, die z.B.
fenstername
heisst, verfuegbar sein (http://selfhtml.teamone.de/javascript/objekte/window.htm#open).
Ob eine window-Instanz ueberhaupt schon einmal der Variablen zugewiesen wurde, pruefst Du ganz richtig mit Deinem
if(fenstername)
ab. Problematisch wird der Versuch, das Fenster zu schliessen, wenn es schon geschlossen wurde - denn obige Bedingung gilt auch dann als wahr :-)
Also muss auch noch abgefragt werden, ob das Fenster (dass ja im Falle, es schon geoeffnet wurde, in der Variablen verfuegbar ist) geschlossen wurde - interessant ist hier die Eigenschaft "fenstername.closed" (http://selfhtml.teamone.de/javascript/objekte/window.htm#closed), die den Wert "false" liefern muss, um das Fenster erfolgreich schliessen zu koennen.
Beispiel 1 (in dem vorausgesetzt wird, dass die erste nicht erfuellte Bedingung zuverlaessig zum Abbruch fuehrt):
function Schliessen()
{if(fenstername&&fenstername.closed==false)
{fenstername.close();}}
Beispiel 2:
function Schliessen()
{if(fenstername)
{if(fenstername.closed==false)
{fenstername.close();}}}
Ich hoffe, dies erleichtert Dir in Zukunft den Zugriff auf window-Instanzen.
(Zumindest habe ich jetzt das heutige Helpfile fuer meine Studis fertig - ich brauche nur noch diesen Thread zu verlinken ;-))
gruesse
rainer groth
Beispiel 1 (in dem vorausgesetzt wird, dass die erste nicht erfuellte Bedingung zuverlaessig zum Abbruch fuehrt):
function Schliessen()
{if(fenstername&&fenstername.closed==false)
{fenstername.close();}}Beispiel 2:
function Schliessen()
{if(fenstername)
{if(fenstername.closed==false)
{fenstername.close();}}}Ich hoffe, dies erleichtert Dir in Zukunft den Zugriff auf window-Instanzen.
Sprachlich ist das nicht richtig. Du schreibst zwar window-instanz nennst die Variabel aber fenstername, was zwei unterschiedlich Dinge sind.
Du kannst ein Fenster nicht schliessen, wenn du nur den Fensternamen kennst, du brauchst immer eine Instanz.
Struppi.
Hallo Struppi,
Sprachlich ist das nicht richtig. Du schreibst zwar window-instanz nennst die Variabel aber fenstername, was zwei unterschiedlich Dinge sind.
???
fenstername=window.open() weist IMO das Ergebnis der Anwendung der Methode "open()" auf das "window"-Objekt als Wert der Variablen "fenstername" zu.
Somit ist in "fenstername" eine "window"-Instanz greifbar.
(Wobei unter http://selfhtml.teamone.de/javascript/objekte/window.htm#open ein Beispiel zu finden ist, dass mit den Variablenbezeichnungen "F1" und "F2" arbeitet.
Du kannst ein Fenster nicht schliessen, wenn du nur den Fensternamen kennst, du brauchst immer eine Instanz.
Full ACK ;-)
Aber Obacht: "fenstername" hat in meinem Beispiel nichts mit dem optionalen zweiten Parameter der "open()"-Methode zu tun.
gruesse
rainer groth