## window

window: Allgemeines zur Verwendung

### Eigenschaften:

closed (geschlossenes Fenster)
defaultStatus (Normalanzeige in der Statuszeile)
innerHeight (Höhe des Anzeigebereichs)
innerWidth (Breite des Anzeigebereichs)
locationbar (Adresszeile)
menubar (Menüleiste)
name (Fenstername)
outerHeight (Höhe des gesamten Fensters)
outerWidth (Breite des gesamten Fensters)
pageXOffset (Fensterstartposition von links)
pageYOffset (Fensterstartposition von oben)
personalbar (Zeile für Lieblingsadressen)
scrollbars (Scroll-Leisten)
statusbar (Statuszeile)
status (Inhalt der Statuszeile)
toolbar (Werkzeugleiste)

### Methoden:

alert() (Dialogfenster mit Infos)
back() (zurück in History)
blur() (Fenster verlassen)
captureEvents() (Ereignisse überwachen)
clearInterval() (zeitliche Anweisungsfolge abbrechen)
clearTimeout() (Timeout abbrechen)
close() (Fenster schließen)
confirm() (Dialogfenster zum Bestätigen)
disableExternalCapture() (Fremdüberwachung verhindern)
enableExternalCapture() (Fremdüberwachung erlauben)
find() (Text suchen)
focus() (Fenster aktiv machen)
forward() (vorwärts in History)
handleEvent() (Ereignis übergeben)
home() (Startseite aufrufen)
moveBy() (bewegen mit relativen Angaben)
moveTo() (bewegen mit absoluten Angaben)
open() (neues Fenster öffnen)
print() (ausdrucken)
prompt() (Dialogfenster für Werteingabe)
releaseEvents() (Ereignisse abschließen)
resizeBy() (Größe verändern mit relativen Angaben)
resizeTo() (Größe verändern mit absoluten Angaben)
routeEvent() (Event-Handler-Hierarchie durchlaufen)
scrollBy() (Scrollen um Anzahl Pixel)
scrollTo() (Scrollen zu Position)
setInterval() (zeitlische Anweisungsfolge setzen)
setTimeout() (Timeout setzen)
stop() (abbrechen)

### Unterobjekte:

document
event
history
location

## window: Allgemeines zur Verwendung

Das Objekt `window` (Fenster) ist das oberste Objekt der Objektfamilie für alles, was im Browser-Fenster angezeigt wird. Über das Objekt `window` können Sie das Dokumentfenster abfragen und kontrollieren. Ferner können Sie neue Fenster definieren. Dabei können Sie auch die Fenstereigenschaften frei bestimmen.

Das aktuelle Fenster des Web-Browsers können Sie über die Objekte `window` oder `self` ansprechen. Auf die Objekte `window` und `self` lassen sich alle Eigenschaften und Methoden des window-Objekts anwenden.

### Beispiel:

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    window.defaultStatus = "Meine Homepage";
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel belegt die ständige Anzeige der Statuszeile des aktuellen Anzeigefensters mit dem Wert `"Meine Homepage"`. Dazu wird die Fenstereigenschaft defaultStatus aufgerufen.

`window` oder `self` können auch weggelassen werden. So hat `window.moveTo(200,100)` die gleiche Wirkung wie `moveTo(200,100)`. Der Übersichtlichkeit halber ist es jedoch besser, den vordefinierten Objektnamen mit anzugeben.

Auch Frame-Fenster innerhalb eines Frame-Sets stellen aus Sicht von JavaScript eigene Fenster dar. Lesen Sie dazu jedoch den Abschnitt über das Objekt frames.

Sie können mit Hilfe von JavaScript nicht nur vorhandene Fenster ansprechen, sondern auch neue Fenster erzeugen und diese mit Hilfe von Variablen ansprechen.

### Beispiel:

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function NeuFenster() {
     MeinFenster =
     window.open("datei2.htm", "Zweitfenster", "width=300,height=200,scrollbars");
     MeinFenster.focus();
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:NeuFenster()">Neues Fenster</a>
    </body></html>

### Erläuterung:

Die Beispieldatei enthält einen Verweis. Beim Anklicken dieses Verweises wird die JavaScript-Funktion `NeuFenster()` aufgerufen. Diese Funktion öffnet ein neues, kleines Browser-Fenster und zeigt darin die Datei `datei2.htm` an. Einzelheiten zum Öffnen neuer Fenster werden bei der Methode open() beschrieben. Ein solches Fenster ist nach dem Erzeugen mit der Variablen ansprechbar, in der die Fensterinstanz gespeichert ist. Im Beispiel ist das die Variable `MeinFenster`. Über diesen Instanznamen können Sie alle Eigenschaften und Methoden des erzeugten Fensters ansprechen.

### Beispiel:

    <a href="javascript:MeinFenster.close()">Fenster zumachen</a>

### Erläuterung:

Im Beispiel wird das zuvor geöffnete Fenster beim Klicken auf den Verweis wieder geschlossen. Zuständig dafür ist die Methode close(). Das Fenster wird dabei mit seinem Instanznamen angesprochen, im Beispiel also mit dem Namen der Variablen `MeinFenster`, mit der es zuvor erzeugt wurde.

Bei der Variablen `MeinFenster` handelt es sich um eine globale Variable. Diese wurde erzeugt durch eine Deklaration der Variablen ohne das Schlüsselwort `var`. Die Deklaration als globale Variable ermöglicht es Ihnen, dieses Fenster auch außerhalb der erzeugenden Funktion anzusprechen.

Genau so, wie Sie vom Hauptfenster auf ein mit `open()` erzeugtes Zweitfenster zugreifen können, können Sie von einem solchen Zweitfenster auf das Hauptfenster zugreifen. Dazu gibt es das Fenster-Objekt `opener`. Damit wird das Fenster angesprochen, von dem aus das aktuelle Fenster geöffnet wurde. Über das Objekt `opener` können Sie alle Eigenschaften und Methoden des öffnenden Fensters ansprechen.

### Testbeispiel (im Zweitfenster):

    <a href="javascript:opener.close()">Hauptfenster zumachen</a>

### Erläuterung:

Notieren Sie nach `opener` einen Punkt und danach die gewünschte Methode oder Eigenschaft.

## closed

Speichert, ob ein Fenster, das zum Beispiel mit `open()` neu geöffnet wurde, mittlerweile geschlossen wurde. Hat den Wert `true`, wenn das Fenster geschlossen wurde. Sinnvoll, um die Existenz eines Fensters abzufragen, bevor Anweisungen zum Verändern eines Fensters folgen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var InfoWin = window.open("datei1.htm", "Zweitfenster");
    function CheckOpen() {
     if(InfoWin.closed == true) alert("Fenster wurde geschlossen");
     else alert("Fenster noch offen");
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:CheckOpen()">Fenster zu?</a>
    </body></html>

### Erläuterung:

Das Beispiel lädt beim Einlesen ein Zweitfenster mit einer anderen Datei `datei1.htm`. Beim Klicken auf den Verweis wird eine Funktion `CheckOpen()` aufgerufen, die ausgibt, ob das andere Fenster noch offen ist oder nicht.

## defaultStatus

Speichert den Inhalt der Statuszeile, der solange angezeigt wird, wie kein besonderes Ereignis eintritt (etwa das Überfahren eines Verweises mit der Maus).

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    window.defaultStatus = "Helmut's Homepage";
    //-->
    </script>
    </head><body>
    <p>Achten Sie auf die Statuszeile</p>
    </body></html>

### Erläuterung:

Das Beispiel belegt beim Einlesen der Datei die normale Anzeige der Statuszeile mit dem Wert `Helmut's Homepage`.

## innerHeight

Speichert die Höhe des Anzeigebereichs eines Fensters. Sehr gut geeignet in Verbindung mit absolutem Positionieren von Elementen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    window.innerHeight = 300;
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel setzt beim Einlesen der Datei den Anzeigebereich des Fensters auf eine Höhe von 300 Pixel fest.

Beachten Sie beim Neufestsetzen der Fensterhöhe die Bildschirmgröße. Diese können Sie mit dem Screen-Objekt ermitteln. Beachten Sie auch, dass der Anzeigebereich eines Fensters um einiges kleiner sein muss als das Fenster selbst, da das Fenster in der Regel noch Elemente wie Titelleiste, Menüleiste usw. enthält. Die absolute Höhe eines Fensters können Sie mit outerHeight auslesen bzw. setzen.

### Beachten Sie:

Unter Opera 5.12 können Sie die Eigenschaft `innerHeight` nur auslesen, jedoch nicht setzen.

Im MS Internet Explorer können Sie mit `document.body.offsetHeight` die innere Fensterhöhe annähernd bestimmen. Zu diesem Zeitpunkt muss jedoch das Body-Element bereits vorhanden sein, d.h. es ist sinnvoll, die Ermittlung dieser Eigenschaft vom Event-Handler onLoad abhängig zu machen.

## innerWidth

Speichert die Breite des Anzeigebereichs eines Fensters. Sehr gut geeignet in Verbindung mit absolutem Positionieren von Elementen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function BreiteFestlegen() {
     window.innerWidth = document.Eingabe.Feld.value;
    }
    //-->
    </script>
    </head><body>
    <form name="Eingabe" action="">
    <input type="text" name="Feld">
    <input type="button" value="Test" onClick="BreiteFestlegen()">
    </form>
    </body></html>

### Erläuterung:

Das Beispiel erlaubt es, in einem Eingabefeld einen Wert einzugeben. Beim Klicken auf einen ebenfalls definierten Button wird die Funktion `BreiteFestlegen()` aufgerufen, die die Fensterbreite auf den eingegebenen Wert setzt.

Beachten Sie beim Neufestsetzen der Fensterbreite die Bildschirmgröße. Diese können Sie mit dem Screen-Objekt ermitteln. Beachten Sie auch, dass der Anzeigebereich eines Fensters um einiges kleiner sein muss als das Fenster selbst, da das Fenster in der Regel noch Elemente wie Titelleiste, Menüleiste usw. enthält. Die absolute Breite eines Fensters können Sie mit outerWidth auslesen bzw. setzen.

### Beachten Sie:

Unter Opera 5.12 können Sie die Eigenschaft `innerWidth` nur auslesen, jedoch nicht setzen.

Im MS Internet Explorer können Sie mit `document.body.offsetWidth` die innere Fensterbreite annähernd bestimmen. Zu diesem Zeitpunkt muss jedoch das Body-Element bereits vorhanden sein, d.h. es ist sinnvoll, die Ermittlung dieser Eigenschaft vom Event-Handler onLoad abhängig zu machen.

## locationbar

Speichert, ob ein Fenster eine eigene Adresszeile hat. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster eine Adresszeile hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Fensterchen = window.open("datei.htm", "Zweitfenster", "width=300,height=200");
    function Adress_Zeile() {
     if(Fensterchen.locationbar && Fensterchen.locationbar.visible == false) {
       Fensterchen.close();
       Neufenster = window.open("datei.htm", "Zweitfenster", "width=300,height=200,location");
       Neufenster.focus();
      }
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Adress_Zeile()">Adresszeile?</a>
    </body></html>

### Erläuterung:

Das Beispiel öffnet zunächst ein Zweitfenster ohne Adresszeile. Beim Klicken auf den Verweis wird die Funktion `Adress_Zeile()` aufgerufen. Diese Funktion prüft, ob der Browser das Objekt `locationbar` kennt und ob das Fenster keine Adresszeile hat. Wenn es keine hat, wird es geschlossen. Stattdessen wird ein neues Fenster geöffnet, wieder mit den gleichen Werten wie das alte, jedoch zusätzlich mit der Angabe `location`. Näheres dazu siehe open().

## menubar

Speichert, ob ein Fenster eine eigene Menüleiste mit den Browser-Menübefehlen hat. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster eine Adresszeile hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Hinweis() {
     if(window.menubar && window.menubar.visible == true)
       alert("Um die Seite zu editieren, aus dem Menue File den Befehl Edit Page waehlen");
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Hinweis()">Diese Seite editieren</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis, das dem Anwender anbietet, die angezeigte Seite zu editieren. Wenn er den Verweis anklickt wird eine Funktion `Hinweis()` aufgerufen. Diese prüft, ob der Browser das Objekt `menubar` kennt und ob für das aktuelle Fenster eine Menüleiste verfügbar ist. Wenn ja, wird mit alert() ein Hinweis ausgegeben, was der Anwender tun muss, um die Seite zu editieren.

## name

Speichert den Namen eines Fensters. Bei Netscape 2.0 nur auslesbar, ab späteren Versionen auch änderbar.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Fenster = window.open("datei.htm","KleinesFenster","width=200,height=200");
    function Fenstername() {
     alert("Name des kleinen Fensters: " + Fenster.name);
     neu = prompt("Vergeben Sie einen neuen Fensternamen","Name");
     Fenster.name = neu;
     alert("Der Name des Fensters lautet jetzt: " + Fenster.name);
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Fenstername()">Name des Fensters</a>
    </body></html>

### Erläuterung:

Das Beispiel lädt beim Einlesen der Datei ein zweites kleines Fenster. Der Name dieses Fensters lautet `KleinesFenster`. Beachten Sie, dass die Eigenschaft `name` sich auf diesen Namen bezieht, nicht etwa auf den Variablennamen, in dem die Fensterinstanz gespeichert wird (im Beispiel die Variable `Fenster`). Beim Klicken auf einen Verweis wird die Funktion `Fenstername()` aufgerufen. Darin wird dem Anwender zunächst mit alert() der aktuelle Fenstername des kleinen Fensters ausgegeben. Dann kann er einen neuen Namen eingeben. Abschließend wird der neue Name angezeigt.

### Beachten Sie:

Ein mit JavaScript gesetzter Fenstername bleibt solange erhalten, wie das Fenster geöffnet ist bzw. bis er erneut geändert wird. Sie können aus diesem Grund den Fensternamen zum Speichern von Variableninhalten verwenden, z.B., um Variablen von einer Datei an eine später aufgerufene Datei zu übergeben. Berücksichtigen Sie dabei jedoch, dass der Fenstername in vielen Browsern lediglich Buchstaben, Zahlen und den Unterstrich enthalten darf. Sonderzeichen und Umlaute dagegen sind nicht erlaubt. Eine Ausnahme bildet Opera 5. Hier bleibt ein mit JavaScript gesetzter Fenstername nur solange gültig, wie das ändernde Dokument in diesem Fenster geladen ist.
Lesen Sie zu dem Thema auch im Online-Angebot von SELFHTML aktuell den Feature-Artikel Javascript-Wertübergabe zwischen verschiedenen HTML-Dokumenten von Hatto von Hatzfeld.

## outerHeight

Speichert die Gesamthöhe eines Fensters inklusive Titelleiste, Menüleiste, Statuszeile usw.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
     alert("Gesamthoehe dieses Fensters: " + window.outerHeight + "  Pixel");
     window.outerHeight = 300;
     alert("Gesamthoehe jetzt: " + window.outerHeight + "  Pixel");
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel gibt beim Einlesen zunächst die Höhe des aktuellen Fensters aus. Dann setzt es die Höhe neu fest, und zwar auf 300 Pixel. Anschließend wird die neue Fensterhöhe zur Kontrolle mit alert() nochmals ausgegeben.

### Beachten Sie:

Unter Opera 5.12 können Sie die Eigenschaft `outerHeight` nur auslesen, jedoch nicht setzen.

## outerWidth

Speichert die Gesamtbreite eines Fensters inklusive Fensterrändern.

Anzeigebeispiel: So sieht's aus

### Beispiel:

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    if(window.outerWidth > 640)
     window.outerHeight = 640;
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel fragt beim Einlesen der Datei ab, ob die Breite des aktuellen Fensters mehr als 640 Pixel beträgt. Wenn ja, wird die Breite auf 640 Pixel festgesetzt.

### Beachten Sie:

Unter Opera 5.12 können Sie die Eigenschaft `outerWidth` nur auslesen, jedoch nicht setzen.

## pageXOffset

Speichert die aktuelle horizontale Position innerhalb der Seite, gemessen am linken Fensterrand. So lässt sich ermitteln, wie weit der Anwender bereits nach rechts gescrollt hat. Sinnvoll in Verbindung der Verwendung mit scrollBy() oder scrollTo().

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Set0() {
     if(parent.frames[1].pageXOffset > 0)
       parent.frames[1].scrollTo(0,parent.frames[1].pageYOffset);
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Set0()">nach links</a>
    </body></html>

### Erläuterung:

Im Beispiel wird angenommen, es gibt ein anderes Frame-Fenster, das einen überbreiten Inhalt hat, so dass der Anwender nach rechts scrollen muss, um alles zu sehen. Mit dem Verweis, der in der aktuellen Datei notiert ist, lässt sich das andere Frame-Fenster wieder ganz nach links scrollen. Dazu wird die aktuelle horizontale Scroll-Position der Eigenschaft `pageXOffset` abgefragt. Wenn sie größer 0 ist, hat der Anwender nach rechts gescrollt. In diesem Fall wird die Methode scrollTo() aufgerufen, um wieder ganz nach links zu scrollen. Die vertikale Position bleibt dabei erhalten, da als Parameter die Eigenschaft pageYOffset übergeben wird.

Zur Adressierung von Frame-Fenstern in JavaScript lesen Sie den Abschnitt über das Objekt frames.

### Beachten Sie:

Im MS Internet Explorer ab Version 4 ist die horizontale Scroll-Position in der Eigenschaft `document.body.scrollLeft` gespeichert.

## pageYOffset

Speichert die aktuelle vertikale Position innerhalb der Seite, gemessen am Dokumentanfang. So lässt sich ermitteln, wie weit der Anwender bereits nach unten gescrollt hat. Sinnvoll in Verbindung der Verwendung mit scrollBy() oder scrollTo().

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    for(var i=0;i<100;i++)
     document.write("Viel Text<br>");
    function Position() {
     alert("pageYOffset: " + window.pageYOffset + " Pixel");
    }
    //-->
    </script>
    <a href="javascript:Position()">Y-Position</a>
    </body></html>

### Erläuterung:

Im Beispiel schreibt ein JavaScript zu Testzwecken 100 mal eine HTML-Zeile mit dem Text `Viel Text` in das Dokumentfenster. Das veranlasst den Browser, entsprechend weit nach unten mit zu scrollen. Am Ende wird ein Verweis notiert. Bei dessen Anklicken wird die Funktion `Position()` aufgerufen. Sie gibt mit alert() aus, wie weit die aktuelle Scroll-Position vom Dokumentanfang entfernt ist.

### Beachten Sie:

Im MS Internet Explorer ab Version 4 ist die vertikale Scroll-Position in der Eigenschaft `document.body.scrollTop` gespeichert.

## personalbar

Speichert, ob ein Fenster eine eigene "Personal"-Leiste hat. Das ist bei Netscape 4.x die Leiste unterhalb der Adresszeile, die den Direktzugriff auf persönliche Lieblings-Adressen ermöglicht. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster eine Personal-Leiste hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function PersonalCheck() {
     if (window.personalbar)
      if(window.personalbar.visible == false)
        alert("Haben Sie denn keine Lieblings-Adressen?");
      else
        alert("Aha, Sie nutzen also die Personal Bar!");
     }
    //-->
    </script>
    </head><body>
    <a href="javascript:PersonalCheck()">Persoenlichkeitstest</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis. Wenn der Anwender den Verweis anklickt, wird eine Funktion `PersonalCheck()` aufgerufen. Diese prüft, ob der Browser das Objekt `personalbar` kennt und ob für das aktuelle Fenster eine Personal-Leiste verfügbar ist. Je nach Ergebnis wird dem Anwender mit alert() eine "persönliche" Meldung ausgegeben.

## scrollbars

Speichert, ob ein Fenster Scroll-Leisten hat. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster Scroll-Leisten hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var Neufenster = window.open("datei.htm", "AnderesFenster","width=400,height=250");
    function Test() {
     if(Neufenster.scrollbars && Neufenster.scrollbars.visible == false)
      Neufenster.close();
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Test()">Kleiner Scroll-Test</a>
    </body></html>

### Erläuterung:

Das Beispiel lädt beim Einlesen der Datei ein zweites, kleineres Fenster, das anschließend unter `Neufenster` ansprechbar ist. Die Datei selbst enthält einen Verweis. Wenn der Anwender den Verweis anklickt, wird eine Funktion `Test()` aufgerufen. Diese prüft, ob der Browser das Objekt `scrollbars` kennt und ob für das zweite Fenster Scroll-Leisten verfügbar sind. Wenn nicht, wird das Fenster mit close() geschlossen.

## statusbar

Speichert, ob ein Fenster eine eigene Statuszeile hat. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster eine Statuszeile hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Statustext(Text)
    {
     if(window.statusbar && window.statusbar.visible == true) window.defaultStatus = Text;
     else alert(Text);
    }
    //-->
    </script>
    </head><body>
    <form name="Eingabe" action="">
    <input type="text" name="Feld">
    <input type="button" value="Start" onClick="Statustext(document.Eingabe.Feld.value)">
    </form>
    </body></html>

### Erläuterung:

Im Beispiel wird ein Formular definiert. Der Anwender kann einen Text eingeben. Beim Klick auf den Button wird die Funktion `Statustext()` aufgerufen. Die Funktion ermittelt, ob der Browser das Objekt `scrollbars` kennt und ob das aktuelle Fenster eine Statuszeile hat. Wenn ja, wird der im Eingabefeld eingegebene Text als Standardtext der Statuszeile gesetzt. Wenn nein, wird der eingegebene Text nur mit alert() angezeigt.

## status

Speichert oder setzt den aktuellen Inhalt der Statuszeile.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="datei.htm" onmouseover="status='Das ist ein Verweis';return true;">Verweis</a>
    </body></html>

### Erläuterung:

Das Beispiel zeigt einen Verweis. Beim Überfahren des Verweistextes mit der Maus erscheint in der Statuszeile der Text: `das ist ein Verweis`. Wichtig ist bei solchen Konstrukten die Anweisung `return true` am Ende.

## toolbar

Speichert, ob ein Fenster eine eigene Buttonleiste (mit Buttons für "Vor", "Zurück" usw.) hat. Stellt selbst ein Objekt dar, das eine Eigenschaft hat, nämlich die Eigenschaft `visible` (= sichtbar). Enthält für diese Eigenschaft den Wert `true`, wenn das Fenster eine Buttonleiste hat, und den Wert `false`, wenn es keine hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    if(self.toolbar && self.toolbar.visible == false)
     document.write("<a href='javascript:history.back()'>Back<\/a>");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel enthält innerhalb des Dateikörpers einen Scriptbereich. Darin wird überprüft, ob das Fenster eine eigene Buttonleiste hat. Wenn nicht, wird mit document.write() ein HTML-Konstrukt an die Stelle im Dokument geschrieben, die den Button "Zurück" als HTML-Verweis schreibt (siehe auch history.back).

## alert()

Gibt Text in einem Dialogfenster aus. Erwartet eine Zeichenkette, eine Zahl oder ein Objekt als Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:alert('Verweisziel noch nicht erreichbar')">Unsere Erfolge</a>
    </body></html>

### Erläuterung:

Das Beispiel führt beim Anklicken eines Verweises keinen Sprung zu einer anderen Seite aus, sondern gibt stattdessen eine Dialogbox mit dem Hinweis `"Verweisziel noch nicht erreichbar"` aus. Sie können der alert()-Methode feste Zeichenketten übergeben wie im Beispiel, aber auch Variablen. Dann wird der Inhalt der Variablen ausgegeben. Auch zusammengesetzte Ketten dürfen Sie übergeben, etwa:
`alert("Ihr Browser" + navigator.userAgent)`

### Beachten Sie:

Intern wandelt die `alert()`-Methode den übergebenen Parameter in eine Zeichenkette um. So kann es vorkommen, dass sich ein Wert mit `alert()` ausgeben lässt, jedoch keine Zeichenkettenoperationen mit dem ausgegebenen Wert ausführbar sind, da es sich außerhalb der Ausgabe nicht um eine Zeichenkette handelt.

Der Rückgabewert der Methode `alert()` ist stets `undefined`.

Das Aussehen des Mitteilungsfenster ist abhängig vom Betriebssystem und dem verwendeten Browser. Das bedeutet, Sie können die Mitteilungsbox nur mittels Steuerzeichen formatieren. Weitere Formatierungsmöglichkeiten stehen Ihnen nicht zur Verfügung.

## back()

Entspricht bei normalen WWW-Seiten einem Klick auf den "Zurück"-Button im Browser. Bei Frames wird jedoch die letzte besuchte Seite aufgerufen, die nicht zum Frame-Set gehörte. Hier liegt der entscheidene Unterschied zur Methode history.back!

Diese Methode erwartet keine Parameter.

### Beispiel:

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:window.back()">Zurück</a>
    </body></html>

### Erläuterung:

Das Beispiel realisiert einen HTML-Verweis, bei dessen Anklicken die Seite aufgerufen wird, die zuletzt das gesamte Anzeigefenster ausfüllte.

## blur()

Macht ein Fenster inaktiv. Das Gegenteil von focus(). Erwartet keine Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var Neufenster = window.open("datei.htm", "AnderesFenster","width=400,height=250");
    //-->
    </script>
    </head><body>
    <a href="javascript:Neufenster.focus()">Fenster nach vorne</a><br>
    <a href="javascript:Neufenster.blur()">Fenster nach hinten</a>
    </body></html>

### Erläuterung:

Im Beispiel wird beim Einlesen der HTML-Datei ein zweites, kleines Fenster geöffnet. Die HTML-Datei selbst enthält zwei Verweise. Beim Anklicken des ersten Verweises wird das zweite Fenster aktiviert - `focus()`. Beim Anklicken des zweiten Verweises wird es deaktivert und je nach Fensterkonstellation von dem Hauptfenster überdeckt - `blur()`.

## captureEvents()

Überwacht Anwenderereignisse im angegebenen Fenster. Erwartet als Parameter eine Folge von Ereignissen, die überwacht werden sollen. Folgende Ereignisse lassen sich überwachen:

`Event.ABORT Event.BLUR Event.CHANGE Event.CLICK Event.DBLCLICK Event.DRAGDROP Event.ERROR Event.FOCUS Event.KEYDOWN Event.KEYPRESS Event.KEYUP Event.LOAD Event.MOUSEDOWN Event.MOUSEMOVE Event.MOUSEOUT Event.MOUSEOVER Event.MOUSEUP Event.MOVE Event.RESET Event.RESIZE Event.SELECT Event.SUBMIT Event.UNLOAD`.

Es handelt sich dabei um spezielle Notationsvarianten entsprechender Event-Handler ohne das "on" davor, dafür mit dem Ansprechen des Event-Objekts davor. So entspricht etwa `Event.MOUSEOVER` dem Event-Handler `onMouseover`.

Sie können mehrere Ereignisse überwachen. Trennen Sie die Event-Namen dabei durch `|` (Querstriche).

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    window.captureEvents(Event.KEYPRESS);
    window.onkeypress = Ausgabe;
    function Ausgabe(Ereignis) {
     alert("Sie haben die Taste mit dem Wert " + Ereignis.which + " gedrueckt");
    }
    //-->
    </script>
    </head><body>
    Druecken Sie irgendwelche Tasten!
    </body></html>

### Erläuterung:

Im Beispiel wird der Event `KEYPRESS` (Taste gedrückt) überwacht. Wenn der Anwender eine Taste drückt, wird die Funktion `Ausgabe()` aufgerufen, die mit alert() ausgibt, welche Taste gedrückt wurde. Die Syntax beim Funktionsaufruf ist dabei abweichend von der üblichen. Ein zusammenhängendes Beispiel mit Erläuterungen hierzu finden Sie im Kapitel Dynamisches HTML im Abschnitt über das Event-Objekt bei Netscape.

Auch Netscape 6 interpretiert das vorliegende Beispiel. Für diesen Browser ist es jedoch notwendig, nach der Bestätigung des Meldefensters dem Fenster mittels Klick erneut den Focus zu geben.

## clearInterval()

Bricht einen Endlosvorgang ab, der mit setInterval() begonnen wurde. Erwartet als Parameter die Variable, in der der Aufruf von `setInterval()` gespeichert wurde.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    var aktiv = window.setInterval("Farbe()",1000);
    var i = 0, farbe = 1;
    function Farbe() {
      if(farbe==1)
      { document.bgColor="yellow"; farbe=2; }
      else
      { document.bgColor="aqua"; farbe=1; }
      i = i + 1;
      if(i >= 10)
       window.clearInterval(aktiv);
    }
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert mit `setInterval()`, dass die Funktion `Farbe()` alle 1000 Millisekunden, also jede Sekunde einmal aufgerufen wird. Der Aufruf wird in der Variablen `aktiv` gespeichert. Im Beispiel wechselt die Funktion `Farbe()` bei jedem Aufruf die Hintergrundfarbe der Datei ( document.bgColor). Gleichzeitig wird ein Zähler hochgezählt. Wenn er größer gleich 10 ist, wird die Methode `clearInterval()` aufgerufen, die den Endlosvorgang stoppt. Dabei wird die zuvor definierte Variable `aktiv` als Parameter übergeben.

## clearTimeout()

Bricht einen Timeout ab, der mit der Methode setTimeout() gestartet wurde. Erwartet als Parameter die Variable, in der der Aufruf von `setTimeout()` gespeichert wurde.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var i = 0;
    function Zaehlen() {
     i = i + 1;
     aktiv = window.setTimeout("Zaehlen()",1000);
    }
    function Aufhoeren() {
     window.clearTimeout(aktiv);
     alert(i + " Sekunden");
    }
    aktiv = window.setTimeout("Zaehlen()",1000);
    //-->
    </script>
    </head><body>
    <form action="">
    <input type="button" value="Klick" onClick="Aufhoeren()">
    </form>
    </body></html>

### Erläuterung:

Das Beispiel startet beim Einlesen der Datei mit `setTimeout()` einen Zählvorgang. Dabei wird alle 1000 Millisekunden, also 1 mal pro Sekunde, die Funktion `Zaehlen()` aufgerufen. Diese zaehlt die Variable `i` hoch. In der Datei wird ein Button definiert. Wenn der Anwender auf den Button klickt, wird die Funktion `Aufhoeren()` aufgerufen. Diese Funktion stoppt mit `clearTimeout()` den Timeout und gibt mit alert() die Anzahl der gezählten Sekunden aus. Beim Aufruf von `clearTimeout()` wird die zuvor bei `setTimeout()` definierte globale Variable `aktiv` als Parameter übergeben.

## close()

Schließt ein Fenster. Erwartet keine Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var Info = window.open("datei.htm", "Zweitfenster");
    //-->
    </script>
    </head><body>
    <form action="">
    <input type="button" value="Fenster zu" onClick="Info.close()">
    </form>
    </body></html>

### Erläuterung:

Das Beispiel öffnet beim Einlesen der Datei ein zweites Fenster namens `Info`. In der Beispieldatei wird ein Button definiert. Wenn der Anwender auf den Button klickt, wird das zweite Fenster geschlossen.

### Beachten Sie:

Die Methode `close()` unterliegt der Sicherheitskonzeption von JavaScript. Das bedeutet, dass sich ein Fenster, sobald es eine History besitzt (weil der Anwender darin mehrere Seiten aufgerufen hat), nicht mehr ohne eine Browsernachfrage schließen lässt. Ein Unterdrücken dieser Abfrage ist nicht möglich.

## confirm()

Blendet ein Dialogfenster mit zwei Buttons für "OK" und "Abbrechen" ein. Sinnvoll, um vom Anwender eine Entscheidung zu erzwingen, die im weiteren Programmablauf verarbeitet wird. Erwartet als Parameter einen Aufforderungstext für die Ja/Nein-Entscheidung. Liefert als Ergebnis zurück, wie sich der Anwender entschieden hat.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Check = confirm("Wollen Sie diese Seite wirklich sehen?");
    if(Check == false) history.back();
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Im Beispiel wird der Anwender beim Einlesen der Datei gefragt, ob er die Seite wirklich sehen will. Der Rückgabewert von `confirm()` wird in der Variablen `Check` gespeichert. Wenn der Anwender auf "OK" klickt, enthält `Check` den Wert `true`. Es passiert nichts weiter und die Seite wird geladen. Wenn er "Abbrechen" wählt, erhält `Check` den Wert `false`. Für diesen Fall ist die Anweisung history.back() notiert, die den Anwender auf die Seite zurückbefördert, von der er kam.

Das Aussehen des Auswahlfenster ist abhängig vom Betriebssystem und dem verwendeten Browser. Das bedeutet, Sie können die Auswahl nur mittels Steuerzeichen formatieren. Weitere Formatierungsmöglichkeiten stehen Ihnen nicht zur Verfügung.

## disableExternalCapture()

Verbietet anderen Fenstern, Ereignisse im aktuellen Fenster zu überwachen. Vor allem als Schutz gedacht, falls fremde Seiten die eigene Seiten in ein Frame-Set laden.

### Beispiel:

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    disableExternalCapture();
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel startet beim Einlesen den Befehl `disableExternalCapture()`. Dadurch können fremde Seiten keine Anwenderereignisse in dieser Datei überwachen, falls die Datei in ein fremdes Frame-Set geladen wird.

## enableExternalCapture()

Erlaubt anderen Fenstern, Ereignisse im aktuellen Fenster zu überwachen. So lassen sich von anderen Fenstern eines Frame-Sets aus Anwenderereignisse im aktuellen Fenster überwachen.

### Beispiel:

    <html><head><title>Test</title>
    <script language="JavaScript" type="text/javascript">
    <!--
    enableExternalCapture();
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel startet beim Einlesen den Befehl `enableExternalCapture()`. Dadurch können fremde Seiten Anwenderereignisse in dieser Datei überwachen, falls die Datei Teil eines Frame-Sets ist.

## find()

Durchsucht den Inhalt eines Fensters nach einem Text. Entspricht in der Funktionalität dem Menübefehl "Suchen". Die Suche bezieht sich nur auf die aktuelle Seite.
Erwartet folgende Parameter:
1. Text = Text, nach dem gesucht werden soll.
2. Groß-/Kleinschreibung beachten = `true` für ja oder `false` für nein übergeben.
3. Suchrichtung rückwärts = `true` für ja oder `false` für nein übergeben.
Die beiden letzten Parameter sind optional.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <form action="">
    <input type="text" name="SuchNach">
    <input type="button" value="suchen" onClick="find(this.form.SuchNach.value,false,false)">
    <p>Geben Sie einen Suchbegriff ein.</p>
    </form>
    </body></html>

### Erläuterung:

Im Beispiel steht am Anfang der Datei ein Formular mit einem Eingabefeld zur Eingabe eines Suchbegriffs. Das Formular enthält außerdem einen Button. Bei dessen Anklicken wird der weitere Inhalt der Datei nach dem Begriff durchsucht, den der Anwender in dem Eingabefeld eingegeben hat.

### Beachten Sie:

Netscape 6.1 kennt diese Methode nicht (mehr).

## focus()

Macht ein Fenster zum aktiven Fenster. Sinnvoll bei Verwendung von Zweitfenstern, aber auch bei Frame-Fenstern. Erwartet keine Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function FrameVerweis(Ziel)
    {
     parent.frames[1].location.href = Ziel;
     parent.frames[1].focus();
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:FrameVerweis('../location.htm')">Neue Seite</a>
    </body></html>

### Erläuterung:

Das Beispiel nimmt an, dass die aktuelle Datei Teil eines Frame-Sets ist. Die Datei enthält einen Verweis, dessen Ziel in einem anderen Frame-Fenster angezeigt werden soll. Beim Anklicken wird aber nicht nur das Verweisziel in das andere Frame-Fenster geladen, sondern dieses wird zugleich das aktive Fenster. So kann der Anwender beispielsweise gleich mit den Pfeiltasten darin scrollen. Dazu wird beim Anklicken des Verweises eine Funktion `FrameVerweis()` aufgerufen. Diese Funktion lädt im ersten Befehl das als Parameter übergebene Verweisziel in den anderen Frame ( location.href), und im zweiten Befehl setzt sie mit `focus()` das Ziel-Framefenster aktiv.

Zur Adressierung von Frame-Fenstern in JavaScript lesen Sie den Abschnitt über das Objekt frames.

## forward()

Entspricht bei normalen WWW-Seiten einem Klick auf den "Vorwärts"-Button im Browser. Bei Frames wird jedoch die nächste besuchte Seite aufgerufen, die nicht zum Frame-Set gehört. Bei Frames also unterschiedlich zu `history.forward()`! Erwartet keine Parameter.

### Beispiel:

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:window.forward()">Vor</a>
    </body></html>

### Erläuterung:

Das Beispiel realisiert einen HTML-Verweis, bei dessen Anklicken die Seite aufgerufen wird, die beim Vorwärtsgehen in der History als nächste das gesamte Anzeigefenster ausfüllt.

## handleEvent()

Übergibt ein Ereignis an ein Element, das in der Lage ist, auf das Ereignis zu reagieren.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function clickHandler(Ereignis)
    { window.document.links[0].handleEvent(Ereignis); }
    window.captureEvents(Event.CLICK);
    window.onClick = clickHandler;
    //-->
    </script>
    </head><body>
    <a href="datei.htm" onClick="location.href='datei.htm'">Verweis</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis, bei dessen Anklicken - ganz normal durch die `href`-Angabe - die Datei `datei.htm` aufgerufen wird. Im Beispiel ist es jedoch so, dass `datei.htm` sofort aufgerufen wird, sobald der Anwender irgendwo im Browser-Fenster hinklickt. Dazu wird beim Einlesen der Datei mit der captureEvents()-Methode das Mausklick-Ereignis überwacht. Wenn das Ereignis eintritt, wird die Funktion `ClickHandler()` aufgerufen. Diese übergibt mit `handleEvent()` das Ereignis an den ersten im Dokument definierten Verweis weiter (`document.links[0]`). In dem entsprechenden Verweis ist dazu ein Event-Handler `onClick=` notiert. Dieser ist in der Lage, das übergebene Ereignis zu verarbeiten. Als Befehl wird mit location.href die gleiche Datei aufgerufen wie beim Anklicken des Verweises selbst.

### Beachten Sie:

Netscape 6.1 kennt diese Methode nicht (mehr).

## home()

Entspricht einem Klick auf den "Home"-Button im Browser.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:home()">Nach hause</a>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Verweis, bei dessen Anklicken die Seite aufgerufen wird, die der Anwender als Start-Homepage eingestellt hat.

## moveBy()

Verschiebt ein Fenster um so viele Pixel wie angegeben. Erwartet folgende Parameter:
1. x-Wert = um wie viele Pixel das Fenster nach links/rechts verschoben werden soll. Negative Werte verschieben nach links, positive nach rechts.
2. y-Wert = um wie viele Pixel das Fenster nach oben/unten verschoben werden soll. Negative Werte verschieben nach oben, positive nach unten.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Fenster = window.open("datei.htm","Zweitfenster","width=200,height=200");
    function Bewege() {
     Fenster.moveBy(200,100);
     Fenster.focus();
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Bewege()">Fenster bewegen</a>
    </body></html>

### Erläuterung:

Das Beispiel lädt beim Einlesen der Datei ein kleines Zweitfenster mit einer anderen Datei. Das Hauptfenster enthält einen Verweis. Beim Anklicken des Verweises wird die Funktion `Bewege()` aufgerufen, die das kleine Fenster um 200 Pixel nach rechts und um 100 Pixel nach unten verschiebt.

## moveTo()

Verschiebt ein Fenster auf die anzugebende Position. Erwartet folgende Parameter:
1. x-Wert = Links-Wert für die neue obere linke Ecke des Fensters.
2. y-Wert = Oben-Wert für die neue obere linke Ecke des Fensters.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Fenster = window.open("datei.htm","Zweitfenster","width=200,height=200");
    function Bewege() {
     Fenster.moveTo(screen.width-200,screen.height-200);
     Fenster.focus();
    }
    //-->
    </script>
    </head><body>
    <a href="javascript:Bewege()">Fenster bewegen</a>
    </body></html>

### Erläuterung:

Das Beispiel lädt beim Einlesen der Datei ein kleines Zweitfenster mit einer anderen Datei. Das Zweitfenster hat eine Breite und eine Höhe von 200 Pixeln. Das Hauptfenster enthält einen Verweis. Beim Anklicken des Verweises wird die Funktion `Bewege()` aufgerufen, die das kleine Fenster in die rechte untere Ecke des Bildschirms verschiebt. Die Pixelangaben für die neue linke obere Ecke des Fensters werden dabei mit Hilfe des screen-Objekts gewonnen, das mit `screen.width` die Bildschirmbreite und mit `screen.height` die Bildschirmhöhe liefert.

## open()

Öffnet ein neues Fenster. Erwartet mindestens zwei, optional auch drei Parameter:

1. URI = Zieladresse einer Datei, die in das neue Fenster geladen werden soll. Wenn sich die Datei im gleichen Verzeichnis befindet, genügt der Dateiname. Ansonsten relative Pfadnamen oder absolute http-Adressen angeben. Bei Netscape darf dies auch eine leere Zeichenkette sein (öffnet ein leeres Fenster), was beim MS Internet Explorer 4 und Opera 5.12 allerdings zu einer Fehlermeldung führt.
Anstelle eines URI können Sie auch mit `about:blank` eine leere Datei in das Fenster laden. Opera 5.12 interpretiert diese Anweisung jedoch noch nicht.

2. Fenstername = Ein Name, der aus Buchstaben, Ziffern und Unterstrich bestehen darf. Unter diesem Namen können beispielsweise Verweise ihre Ziele mit `<a href="ziel.htm" target="NameDesFensters">` in das erzeugte Fenster laden.
Gültige Fensternamen sind auch `_blank`,`_parent`,`_self` und `_top`. Opera 5.12 öffnet jedoch in jedem Fall die Datei im gleichen Fenster. Netscape 6.x interpretiert die Angabe `_parent` nicht.

3. (optional) Angaben zum Aussehen des Fensters = Eine Zeichenkette, in der Sie die Größe und die Eigenschaften des Fensters festlegen können. Mehrere Angaben sind durch Kommata zu trennen. Folgende Angaben sind möglich:

Eigenschaft | Wertzuweisung | Status | Bedeutung
--- | --- | --- | ---
`dependent=` | `yes|no` |  | Wenn ja (`yes`), wird das Fenster geschlossen, wenn sein Elternfenster geschlossen wird. Wenn nein (`no` = Voreinstellung), bleibt das Fenster erhalten, wenn sein Elternfenster geschlossen wird.
`height=` | `[Pixel]` |  | Höhe des neuen Fensters in Pixeln, z.B. `height=200`.
`hotkeys=` | `yes|no` |  | Wenn nein (`no`), werden Tastaturbefehle zum Steuern des Browsers in dem Fenster deaktiviert. Wenn ja (`yes` = Voreinstellung), bleiben Tastaturbefehle des Browsers in dem Fenster gültig.
`innerHeight=` | `[Pixel]` |  | Höhe des Anzeigebereichs des neuen Fensters in Pixeln, z.B. `innerHeight=200`.
`innerWidth=` | `[Pixel]` |  | Breite des Anzeigebereichs des neuen Fensters in Pixeln, z.B. `innerWidth=200`.
`left=` | `[Pixel]` |  | Horizontalwert der linken oberen Ecke des neuen Fensters in Pixeln, z.B. `left=100`.
`location=` | `yes|no` |  | Wenn ja (`yes`), erhält das Fenster eine eigene Adresszeile. Wenn nein (`no`), erhält es keine Adresszeile. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält. Netscape 6.1 interpretiert diese Angabe nicht.
`menubar=` | `yes|no` |  | Wenn ja (`yes`), erhält das Fenster eine eigene Menüleiste mit Browser-Befehlen. Wenn nein (`no`), erhält es keine Menüleiste. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält.
`resizable=` | `yes|no` |  | Wenn ja (`yes`), kann der Anwender das Fenster in der Größe verändern. Wenn nein (`no`), kann er die Fenstergröße nicht ändern. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält.
`screenX=` | `[Pixel]` |  | Horizontalwert der linken oberen Ecke des neuen Fensters in Pixeln, z.B. `screenX=100`.
`screenY=` | `[Pixel]` |  | Vertikalwert der linken oberen Ecke des neuen Fensters in Pixeln, z.B. `screenY=30`.
`scrollbars=` | `yes|no` |  | Wenn ja (`yes`), erhält das Fenster Scroll-Leisten. Wenn nein (`no`), kann der Anwender in dem Fenster nicht scrollen. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält.
`status=` | `yes|no` |  | Wenn ja (`yes`), erhält das Fenster eine eigene Statuszeile. Wenn nein (`no`), erhält es keine Statuszeile. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält.
`toolbar=` | `yes|no` |  | Wenn ja (`yes`), erhält das Fenster eine eigene Werkzeugleiste. Wenn nein (`no`), erhält es keine Werkzeugleiste. Voreinstellung ist `no`, beim Internet Explorer jedoch nur, wenn die Optionenzeichenkette mindestens eine Option enthält.
`top=` | `[Pixel]` |  | Vertikalwert der linken oberen Ecke des neuen Fensters in Pixeln, z.B. `top=100`.
`width=` | `[Pixel]` |  | Breite des neuen Fensters in Pixeln, z.B. `width=400`.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    F1 = window.open("datei.htm","Fenster1","width=310,height=400,left=0,top=0");
    F2 = window.open("datei.htm","Fenster2","width=310,height=400,left=320,top=0");
    self.focus();
    self.close();
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel öffnet beim Einlesen der Datei zwei weitere Fenster so, dass sie nebeneinander angeordnet sind. Anschließend schließt sich das Hauptfenster selbst. Angenommen, in `datei.htm` (wird ins erste Fenster geladen) steht ein Verweis, dessen Ziel im zweiten Fenster angezeigt werden soll. Dazu können Sie notieren:
`<a href="datei.htm" target="Fenster2">Verweistext</a>`
Wichtig ist dabei die Angabe `target=`. Dort müssen Sie den Fenstername angeben, den Sie bei der Definition des gewünschten Zielfensters vergeben haben - im Beispiel `"Fenster2"`.

### Beachten Sie:

Die meisten Browser erlauben keine Fensterhöhe oder -breite, die kleiner als 100px ist. Je nach Betriebssystem und Browser wird bei kleineren Fenstern eine Fehlermeldung (Zugriff verweigert) ausgegeben bzw. die jeweiligen Minimalwerte verwendet.

## print()

Druckt den Inhalt einer Seite aus. Entspricht dem Menübefehl zum Drucken im Browser. Erwartet keine Parameter.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <a href="javascript:window.print()">Diese Seite drucken</a>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Verweis, mit dessen Hilfe der Anwender die Seite ausdrucken kann.

### Beachten Sie:

Der MS Internet Explorer 5 unter Macintosh und Opera 5.12 interpretieren diese Methode nicht.

Für den Internet Explorer 4.x gibt es einen Workaround, um das Ausdrucken mit JavaScript anzustoßen. Dazu muss ein ActiveX-Control eingebunden werden. Der JavaScript-Code sieht dazu folgendermaßen aus (Beispiel):
`if(document.all && navigator.appVersion.substring(22,23)==4) {
self.focus();
var OLECMDID_PRINT = 6;
var OLECMDEXECOPT_DONTPROMPTUSER = 2;
var OLECMDEXECOPT_PROMPTUSER = 1;
var WebBrowser = '<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>';
document.body.insertAdjacentHTML('beforeEnd',WebBrowser);
WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER);
WebBrowser1.outerHTML = ''; }
}`

## prompt()

Zeigt ein Dialogfenster mit einem Eingabefeld, einem OK-Button und einem Abbrechen-Button an. Der Anwender kann in dem Eingabefeld etwas eingeben. Die Methode `prompt()` gibt diesen eingegebenen Wert zurück. So lassen sich Anwendereingaben im Script weiterverarbeiten.
Erwartet zwei Parameter:
1. Aufforderungstext = Text, der beschreibt, was der Anwender eingeben soll.
2. Feldvorbelegung = Text, mit dem das Eingabefeld vorbelegt wird. Wenn Sie ein leeres Eingabefeld wollen, übergeben Sie dafür eine leere Zeichenkette `""`.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    Check = prompt("Geben Sie Ihr Passwort fuer diese Seite ein","");
    if(Check != "Rumpelstielz") history.back();
    else alert("Sie haben Zutritt");
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel bringt vor dem Anzeigen der HTML-Datei mit `prompt()` ein Dialogfenster auf den Bildschirm. Darin muss der Anwender ein Passwort eingeben. Die Eingabe wird in der Variablen `Check` gespeichert. Wenn der Wert dieser Variablen nach dem Beenden des Dialogfensters nicht gleich `"Rumpelstielz"` ist, wird der Anwender mit history.back() zu der Seite zurückgeschickt, von der er kam. Wenn das eingegebene Wort stimmt, erhält er mit alert() die Meldung, dass er Zutritt hat, und die Seite wird geladen.

## releaseEvents()

Beendet die Überwachung von Anwenderereignissen. Gegenstück zu captureEvents(). Erwartet als Parameter eine Folge von Ereignissen, die nicht mehr überwacht werden sollen. Gleiche Syntax wie bei `captureEvents()`.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    var i = 0;
    window.captureEvents(Event.KEYPRESS);
    window.onkeypress = Ausgabe;
    function Ausgabe(Ereignis)
    {
     alert("Sie haben die Taste mit dem Wert " + Ereignis.which + " gedrueckt");
     i = i + 1;
     if(i > 2)
      window.releaseEvents(Event.KEYPRESS);
    }
    //-->
    </script>
    </head><body>
    Druecken Sie 3 mal irgendwelche Tasten!
    </body></html>

### Erläuterung:

Im Beispiel wird der Event KEYPRESS (Taste gedrückt) überwacht. Wenn der Anwender eine Taste drückt, wird die Funktion `Ausgabe()` aufgerufen, die mit alert() ausgibt, welche Taste gedrückt wurde. Die Funktion ruft sich bei Eintritt des Ereignisses selbst wieder auf, jedoch nur, solange der Zähler `i` kleiner als 3 ist. Danach wird das Überwachen der Tastaturereignisse mit der Methode `releaseEvents(Event.KEYPRESS)` beendet.
Ein zusammenhängendes Beispiel mit Erläuterungen hierzu finden Sie im Kapitel Dynamisches HTML im Abschnitt über das Event-Objekt bei Netscape.

### Beachten Sie:

Netscape 6 interpretiert diese Methode nicht (mehr).

## resizeBy()

Verändert die Größe eines Fensters um so viele Pixel unten und rechts wie angegeben. Erwartet folgende Parameter:
1. x-Wert = um wie viele Pixel das Fenster rechts verkleinert/vergrößert werden soll. Negative Werte verkleinern, positive vergrößern.
2. y-Wert = um wie viele Pixel das Fenster unten verkleinert/vergrößert werden soll. Negative Werte verkleinern, positive vergrößern.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Kleiner() { window.resizeBy(-10,-10); }
    //-->
    </script>
    </head><body>
    <a href="javascript:Kleiner()">Mach kleiner</a>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Verweis. Beim Anklicken des Verweises wird die Funktion `Kleiner()` aufgerufen. Diese Funktion verkleinert das dateieigene Fenster um 10 Pixel in der Breite und in der Höhe.

## resizeTo()

Verändert die Größe eines Fensters absolut. Erwartet folgende Parameter:
1. x-Wert = neue Breite des Fensters.
2. y-Wert = neue Höhe des Fensters.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body onLoad="window.resizeTo(580,420)">
    </body></html>

### Erläuterung:

Das Beispiel setzt die Fenstergröße beim Einlesen der Datei auf eine Breite von 580 Pixeln und auf eine Höhe von 420 Pixeln.

## routeEvent()

Übergibt ein Anwenderereignis an das oberste Objekt der Objekt-Hierarchie, also an das window-Objekt. Vor dort aus wird das Ereignis immer weiter nach unten durchgereicht, bis sich ein Event-Handler findet, der das Ereignis verarbeitet.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Click1() {
     alert("Sie haben auf den Button geklickt");
    }
    function Click2(Ereignis)
    {
     alert("Sie haben ins Fenster geklickt");
     window.routeEvent(Ereignis);
    }
    window.captureEvents(Event.CLICK);
    window.onClick = Click2;
    //-->
    </script>
    </head><body>
    <form action="">
    <input type="button" value="Button" onClick="Click1()">
    </form>
    </body></html>

### Erläuterung:

Das Beispiel enthält einen Button, bei dessen Anklicken die Funktion `Click1()` aufgerufen wird. Diese Funktion gibt zur Kontrolle mit alert() aus, dass der Button angeklickt wurde. Im Beispiel ist es jedoch so, dass beim Einlesen der Datei mit der captureEvents()-Methode das Mausklick-Ereignis überwacht wird. Wenn das Ereignis eintritt, wird in jedem Fall die Funktion `Click2()` aufgerufen. Diese gibt zur Kontrolle aus, dass in das Fenster geklickt wurde. Anschließend übergibt sie mit `routeEvent()` das Ereignis an die Objekthierarchie. Wenn der Klick auf ein anderes Objekt erfolgt, dass ebenfalls das Klick-Ereignis überwacht, wird die entsprechende Aktion ebenfalls ausgeführt. Im Beispiel hat dies zur Folge, dass der Anwender beim Klick auf den Button zwei Meldungen erhält: nämlich zuerst die, dass ins Fenster geklickt wurde, und danach die, dass auf den Button geklickt wurde. Ohne die `routeEvent()`-Methode würde er die zweite Meldung gar nicht erhalten, da das Klick-Ereignis vorher abgefangen worden wäre.

### Beachten Sie:

Netscape 6 interpretiert diese Methode nicht (mehr).

## scrollBy()

Scrollt eine Seite automatisch um so viele Pixel nach oben oder unten oder links oder rechts wie angegeben. Erwartet folgende Parameter:
1. x-Wert = um wie viele Pixel nach rechts links/rechts gescrollt werden soll. Negative Werte scrollen nach links, positive nach rechts.
2. y-Wert = um wie viele Pixel nach oben/unten gescrollt werden soll. Negative Werte scrollen nach oben, positive nach unten.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    for(var i=1; i<=100; i++)
     document.write("<br>Zeile " + i);
    function NachOben() {
     var y=0;
     if (window.pageYOffset)
     else if (document.body && document.body.scrollTop) y=document.body.scrollTop;
     while(y > 0) {
      setTimeout("window.scrollBy(0,-10)",10);
      y = y - 10;
     }
    }
    //-->
    </script>
    <a href="javascript:NachOben()">nach oben scrollen</a>
    </body></html>

### Erläuterung:

Das Beispiel schreibt zu Testzwecken in einer Schleife mit document.write() 100 Zeilen in die Datei. Unterhalb davon wird ein HTML-Verweis notiert. Um zu diesem Verweis zu gelangen, muss der Anwender wegen der 100 voranstehenden Zeilen erst mal nach unten scrollen. Wenn er auf den Verweis klickt, wird automatisch langsam zum Seitenanfang zurückgescrollt. Dazu wird die Funktion `NachOben()` aufgerufen. Diese Funktion ermittelt mit pageYOffset bzw. im MS Internet Explorer mit `document.body.offsetTop` zunächst die vertikalen Position innerhalb der Seite. Dann wird innerhalb einer while-Schleife so lange nach oben gescrollt, bis die Scrollposition bei 0 angelangt ist.
In dem Beispiel wird dazu nur der `y`-Wert jeweils um -10 Pixel verändert. So wird die Seite bei jedem Scroll-Befehl um 10 Pixel nach oben gescrollt. Der Verzögerungs-Effekt beim Scrollen kommt im Beispiel dadurch zustande, dass die Scroll-Befehle in die Methode setTimeout() eingebunden sind.

## scrollTo()

Scrollt zu einer bestimmten Position. Erwartet folgende Parameter:
1. x-Wert = Links-Wert für Position der linken oberen Ecke des Anzeigefensters.
2. y-Wert = Oben-Wert für Position der linken oberen Ecke des Anzeigefensters.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    function Pos100() { window.scrollTo(100,100) }
    var Zeile = "<nobr>Zeile";
    for(var i=1; i<=100; i++)
    {
     Zeile = Zeile + " Zeile";
     document.write("<br>Zeile " + Zeile);
    }
    document.write("<a href='javascript:Pos100()'> Test<\/a><\/nobr>");
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel schreibt zu Testzwecken in einer Schleife mit document.write() 100 Zeilen, wobei die Zeilen immer länger werden. Ganz am Ende wird ein Verweis notiert. Um dort hin zu gelangen, muss der Anwender nach unten und nach rechts scrollen. Wenn er auf den Verweis klickt, wird die Funktion `Pos100()` aufgerufen. Diese Funktion setzt die Scroll-Position neu, und zwar auf 100 Pixel von links und 100 Pixel von oben, bezogen auf den Dokumentanfang.

## setInterval()

Führt eine Anweisung oder den Aufruf einer Funktion in einem festgelegten Rhythmus immer wieder aus, solange, bis der Vorgang mit clearInterval() beendet wird. Erwartet zwei Parameter:
1. Code = Eine JavaScript-Anweisung, die wiederholt werden soll. Meistens ein Funktionsaufruf.
2. Pause = Wert in Millisekunden bis zum nächsten Ausführen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    </head><body>
    <script type="text/javascript">
    <!--
    var aktiv = window.setInterval("Farbe()",1000);
    var i = 0, farbe = 1;
    function Farbe() {
      if(farbe==1)
      { document.bgColor="yellow"; farbe=2; }
      else
      { document.bgColor="aqua"; farbe=1; }
      i = i + 1;
      if(i >= 10)
       window.clearInterval(aktiv);
    }
    //-->
    </script>
    </body></html>

### Erläuterung:

Das Beispiel definiert mit `setInterval()`, dass die Funktion `Farbe()` alle 1000 Millisekunden, also jede Sekunde einmal aufgerufen wird. Wichtig ist, dass der Aufruf in einer Variablen gespeichert wird, im Beispiel in der Variablen `aktiv`. Diese Variable wird der Methode `clearInterval()` benötigt, um den Vorgang zu stoppen. Im Beispiel wechselt die Funktion `Farbe()` bei jedem Aufruf die Hintergrundfarbe der Datei ( document.bgColor). Gleichzeitig wird ein Zähler hochgezählt. Wenn er größer gleich 10 ist, wird die Methode `clearInterval()` aufgerufen, die den Endlosvorgang stoppt. Dabei wird die zuvor definierte Variable `aktiv` als Parameter übergeben.

## setTimeout()

Führt eine Anweisung nach einer bestimmten Verzögerungszeit aus. Erwartet zwei Parameter:
1. Code = Eine JavaScript-Anweisung, die wiederholt werden soll. Meistens ein Funktionsaufruf.
2. Pause = Wert in Millisekunden bis zum Ausführen.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <html><head><title>Test</title>
    <script type="text/javascript">
    <!--
    function Hinweis() {
    var x = confirm("Sie sind jetzt schon 10 Minuten auf dieser Seite. Fortfahren?");
     if(x == false) top.close();
    }
    window.setTimeout("Hinweis()",60000);
    //-->
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Das Beispiel ruft nach 60000 Millisekunden, also nach 10 Minuten, eine Funktion `Hinweis()` auf, sofern der Anwender nach dieser Zeit immer noch auf der Seite ist. Die Funktion fragt ihn mit der confirm()-Methode, ob er noch länger auf der Seite bleiben möchte. Wenn nicht, wird das Hauptfenster geschlossen. Dazu dient der Befehl `top.close()`, der die close()-Methode auf die oberste Fenster-Instanz des Browsers anwendet.

### Beachten Sie:

An `setTimeout()` gekoppelte Funktionsaufrufe können auch Parameter enthalten. Berücksichtigen Sie dabei, dass lokale Variable dann nicht mehr zur Verfügung stehen. Eine Übergabe der Werte mittels Zeichenkettenverknüpfung ist jedoch jederzeit möglich.

## stop()

Entspricht einem Klick auf den "Stop"-Button im Browser. Der Ladevorgang einer Seite wird dadurch abgebrochen.

### Beispiel:

    <html><head><title>Test</title>
    </head><body>
    Diese Seite hat einen Umfang von 300 Kilobyte:<br>
    <a href="javascript:stop()">abbrechen</a>
    </body></html>

### Erläuterung:

Das Beispiel definiert einen Verweis, bei dessen Anklicken der Ladevorgang einer Seite abgebrochen wird.

| frames
| Hinweise zur JavaScript Objekt-Referenz

© 2001 selfhtml@teamone.de