Antje Hofmann: Verständnisfrage

Beitrag lesen

Hallo Kurt,

Was genau machen die einzelnen Teile dieser Abfrage, bzw. wofür sind die gut?

newwindow=false; //wozu setzt man hier die Instanz auf "false"?//

das ist keine Instanz sondern eine globale Variable mit dem Namen newwindow
Wissen muss man, dass alle Variablen innerhalb einer Funktion, die _nicht als Parameter übergeben wurden bzw. _nicht_ mit dem Schlüsselwort var deklariert werden automatisch globale Variablen sind. D.h. diese Variablen sind überall verfügbar und Änderungen werden an allen Stellen sichtbar.

function fenster(url,breite,hoehe)
{
if(newwindow && newwindow.closed==false) //Wozu dient die Verknüpfung von "newwindow" und "newwindow.closed"?

hier wird gefragt, ob die Variablen existiert und wenn ja, ob diese die Eigenschaft closed kennt.

closed ist eine Eigenschaft, die beschreibt, ob ein ehemals geöffnete Fenster geschlossen wurde. Wenn das Fenster nicht geschlossen wurde, dann soll in dieser Funktion das Fenster geschlossen werden.

newwindow.close()

beim ersten Aufruf der Funktion ist der Wert der globalen Variablen newwindow noch false und deshalb wird auch der Befehl newwindow.close() nicht ausgeführt.

Sondern gleich in diese Zeile gesprungen:

newwindow = window.open(url,"newwindow","width="+breite+",height=" +hoehe+",left="+l+",top="+t+",scrollbars=0,resizable=0;");

window.open() ist eine Methode, die eine Art Referenz auf das geöffnete Fenster zurückgibt. Und diese Referenz wird in der Variablen newwindow gespeichert.

Über diese Variable kannst du alle Eigenschaften des geöffneten Fensters ansprechen. Beispielsweise durch den Aufruf der Methode:

newwindow.focus();

Wird die Funktion erneut aufgerufen, dann ist in der Variable newwindow immer noch die Referenz auf das geöffente Fenster gespeichert und damit ist auch die Eigenschaft closed vorhanden, die solange den Wert false beinhaltet wie das Fenster offen ist. Wird es vom Anwender geschlossen erhält diese Eigenschaft dann den Wert true.

Viele Grüße

Antje