Modale Fenster sind von den Betriebssystemen her bekannt. Sie treten in den Vordergrund, bekommen den Fokus und verhindern den Zugriff auf die Applikation. Erst wenn das modale Fenster vom User abgearbeitet ist, kann er mit dem Programm fortfahren. Da dieser Fenstertyp sehr stark in die Benutzerführung eingreift, sollte man sich genau überlegen ob und wann es sinnvoll ist ein solches Fenster einzusetzen. Modale Fenster sind in der Objekthierarchie dem window-Objekt der Applikation zu- besser untergeordnet. Da das windows-Objekt automatisch erzeugt wird und am häufigsten verwendet wird, kann es bei der Programmierung oft weggelassen werden. Ein modales Fenster ist zum Beispiel das alert-Fenster. Sein Aufruf müßte korrekt window.alert() heissen. Das window-Objekt bezeichnet ein Browserfenster oder einen Frame und kann auch durch die Schlüsselwörter this oder self substituiert werden.
Das location-Objekt ist ein Unterobjekt von window. Es beinhaltet eine Eigenschaft namens href, die die aktuelle URL einer Seite beinhaltet. Diese Eigenschaft kann auch gesetzt werden, was zu einem Wechsel der Seite führt. window.location.href = "http://weblab.uni-lueneburg.de"; Desweiteren bietet dieses Objekt eine Funktion namens reload() an, die bewirkt ein Neuladen der aktuellen Seite. window.location.reload();
Es gibt drei Typen von modalen Fenstern, die im folgenden kurz vorgestellt werden sollen.
Beim confirm-Fenster kann zu Kollisionen mit dem href des HTML-Kodes kommen: <A href="http://weblab.uni-lueneburg.de" onClick="return confirm('Wollen Sie wirklich zur weblab Seite gehen?')"> zur weblab-Seite </A> Was wird hier abgearbeitet?
Das history-Objekt ist ebenfalls ein Unterobjekt von window. Mit ihm ist der Zugriff auf die history des Browsers möglich. So kann man die Funktionalität der Navigationselemente der Browser nachbilden, was Sinn macht, wenn die entsprechenden Zeilen vorher ausgeblendet worden sind. Seit den Versionen 3 von MSIE und NN haben auch die Frames eigene history-Tabellen. Der Zugriff auf die history-Tabellen durch JavaScript ist aus Sicherheitsgründen sehr eingeschränkt. Das Auslesen (gläserner Surfer) sowie das Überschreiben (Selbsteintrag kommerzieller Seiten) sind nicht möglich. Der Zugriff erfolgt mittelbar über eine Art relativen link, der durch einen Funktionsaufruf erzeugt wird. Die verwendbaren Funktionen sind folgende:
Beispiel: <A href="javascript:window.history.back();"> gehe zurück </A>
Seit JavaScript 1.2 (MSIE 5, NN 4) gibt es die Funktion window.print(). Diese Funktion bewirkt den Arfruf des Druckdialogs. Da die funktion erst ab Version 1.2 zur Verfügung steht, muß vorher abgefragt werden ob sie tatsächlich verwendet werden kann. Dafür gibt es zwei Möglichkeiten: Entweder durch die Verwednung des language-Parameters im SCRIPT-Tag: <SCRIPT language="JavaScript1.2"> oder durch direktes Abfragen der Verwendbarkeit der Funktion: <SCRIPT>
Die Stauszeile kann als eine einfache Möglichkeit Texte anzuzeigen verwendet werden. Man sollte jedoch immer bedenken, daß der Browser dem Benutzer über die Statuszeile wertvolle Informationen liefert, die nicht mit anderen Texten überschrieben werden sollten. Daher ist der Einsatz der Statuszeile immer gut zu abzuwägen. Das Objekt welches hier angesprochen wird heißt window.status. Oft wird es über das EventHandler-Paar onMouseOver/Out angesprochen. <A href="...." onMouseOver="window.status='text'; return true;" onMouseOut="window.status='' "> verlinkter Text </A> Nur wenn der EventHandler auf return true endet, wird der Text in der Statuszeile angezeigt. Undebingt sollte man auch den onMouseOut Handler verwenden und den Text leer überschreiben, da dies bei älteren Browsern nicht unbedingt geschieht. Die Folge ist, das der Text stehen bleibt, auch wenn der Mauszeiger sich schon lange nicht mehr über dem Link befindet. Es ist in JavaScript möglich neue Fenster zu öffnen. Die allgemeine Sytax lautet wie folgt: var fenster = window.open(URL, Name, Optionen);
Beispiel: var fenster = window.open("","Neu","status=yes,width=400"); Hier eine Auswahl der möglichen Optionen-Parameter:
Daneben gibt es eine ganze Reihe von browserspezifischen Optionen, die zusammen mit einer Browserweiche verwendet werden sollten. Die selbst erzeugten Fenster können mit window.close() bzw. wie im Beispiel mit fenster.close() auch per JavaScript geschlossen werden.
dynamisch erzeugte HTML-Seiten Durch die Funktion document.write() läßt sich HTML-Code dynamisch erzeugen. Dazu muß jedoch vorher das Dokument für den Schreibzugriff geöffnet (open()) und später wieder geschlossen (close()) werden. In Verbindung mit dem Erzeugen eines neuen Fensters sähe das folgendermaßen aus: var fenster = window.open(""); fenster.document.open(); fenster.document.write("<HTML><HEAD><TITLE>DynamicSite</TITLE></HEAD><BODY>"); fenster.document.close(); |