SELFHTML/Quickbar JavaScript Objektreferenz

| ## frames
| frames: Allgemeines zur Verwendung Eigenschaft: length (Anzahl Frames) Unterobjekte: document event history location

## frames: Allgemeines zur Verwendung

Mit dem Objekt `frames` haben Sie Zugriff auf Frames, also auf ein Frame-Set und seine Frame-Fenster, die in einer HTML-Datei definiert sind.

Da jedes Frame-Fenster aus Sicht des Browsers ein eigenes Fenster darstellt, ist das `frames`-Objekt lediglich eine Variante des window-Objekts, also des allgemeinen Fenster-Objekts. Alle Eigenschaften und Methoden, die zum `window`-Objekt gehören, lassen sich auch auf das `frames`-Objekt, also auf einzelne Frame-Fenster anwenden. Das `frames`-Objekt stellt nur deshalb ein eigenes Objekt dar, weil es eine zusätzliche Eigenschaft enthält, und weil bei der Adressierung von Frame-Fenstern in JavaScript ein paar Besonderheiten zu beachten sind:

### Schema 1 / Beispiel 1:

    parent.frames[#].Eigenschaft/Methode();

    parent.frames[1].location.href = "sport.html";

### Schema 2 / Beispiel 2:

    parent.NameDesFrames.Eigenschaft/Methode();

    parent.RechtesFenster.close();

### Erläuterung:

`parent` ist ein reservierter Fenstername, den Sie zum Ansprechen von Fenstern innerhalb eines Frame-Sets verwenden können. Anstelle von `parent` können Sie auch `top` verwenden. Mit `parent` sprechen Sie das Eltern-Fenster des aktuellen Frame-Fensters an, mit `top` in jedem Fall das oberste Anzeigefenster des Browsers.

Frame-Fenster können Sie auf zwei Arten ansprechen:

- mit einer Indexnummer (wie in Schema 1 / Beispiel 1)
  Bei Verwendung von Indexnummern geben Sie `frames` an und dahinter in eckigen Klammern, das wievielte Frame-Fenster im Frame-Set Sie meinen. Beachten Sie, daß der Zähler bei 0 beginnt, d.h. das erste Frame-Fenster sprechen Sie mit `frames[0]` an, das zweite Frame-Fenster mit `frames[1]` usw. Beim Zählen gilt die Reihenfolge, in der die `<frame>`-Befehle im Frame-Set definiert sind.
- mit dem Namen des Frame-Fensters (wie in Schema 2 / Beispiel 2)
  Dabei geben Sie den Namen an, der bei der HTML-Definition des Frame-Fenster bei `<frame ...>` im Attribut `name=` definiert worden ist.

Da das `frames`-Objekt eigentlich eine Variante des window-Objekts ist, können Sie nicht nur die alle Eigenschaften und Methoden des `window`-Objekts auf das frames-Objekt anwenden, sondern auch alle anderen, die in der Hierarchie unterhalb des `window`-Objekts stehen. Ebenso, wie Sie beispielsweise mit `window.document.forms[0].elements[0].value = "Stefan"` den Inhalt eines Formular Eingabefelds in einer gewöhnlichen HTML-Datei ändern können, können Sie das gleiche innerhalb eines Frame-Sets etwa mit `parent.frames[1].document.forms[0].elements[0].value = "Stefan"` erreichen.

Ein typisches Anwendungsbeispiel für den Einsatz des Frame-Objekts finden Sie in diesem Dokument: Zwei Frames gleichzeitig ändern.

## length

Speichert, wie viele Frame-Fenster ein übergeordnetes Fenster enthält.

### Beispiel:

    <html><head><title>Test</title>
    <script language="JavaScript">
    for(i=0; i < parent.frames.length; ++i)
     alert(parent.frames[i].name);
    </script>
    </head><body>
    </body></html>

### Erläuterung:

Mit `parent.frames.length` oder `top.frames.length` können Sie die Anzahl der Frame-Fenster ermitteln. Im Beispiel wird angenommen, daß die HTML-Datei innerhalb eines Frame-Sets aufgerufen wird. Beim Einlesen der Datei gibt die Datei mit der Methode `alert()` nacheinander die Namen aller Frame-Fenster im Frame-Set aus. Dazu dient die for-Schleife. Die Eigenschaft `parent.frames.length` dient als Abbruchbedingung für die Schleife. Da der Schleifenzähler `i` bei jedem Schleifendurchlauf um 1 erhöht wird, wird mit `parent.frames[i]` jeweils das nächste Frame-Fenster angesprochen.

weiter: | document
zurück: | window

SELFHTML/Quickbar JavaScript Objekt-Referenz

© 1998 Stefan Münz, muenz@csi.com