SELFHTML

frames

Informationsseite

nach unten frames: Allgemeines zur Verwendung
nach unten Auf JavaScripts in anderen Frames zugreifen

Eigenschaft:

nach unten length (Anzahl Frames)

Unterobjekte:

Seite document
Seite event
Seite history
Seite location

 nach unten 

frames: Allgemeines zur Verwendung

Mit dem Objekt frames haben Sie Zugriff auf Kapitel 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 Seite window-Objekts, also des allgemeinen Fensterobjekts. 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:

Da das frames-Objekt eigentlich eine Variante des Seite 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: Seite Zwei Frames gleichzeitig ändern.

 nach obennach unten 

JavaScript 1.0Netscape 2.0MS IE 3.0Opera 5.12Mozilla Firefox 1Konqueror 3.3Safari 1.2 Auf JavaScripts in anderen Frames zugreifen

Mit der gleichen Syntax, wie Sie auf HTML-Elemente in anderen Frame-Fenstern zugreifen können, können Sie auch auf JavaScripts zugreifen, die in einem anderen Frame-Fenster aktuell notiert sind. So können Sie Variablen des anderen Scripts auslesen und Funktionen des anderen Scripts aufrufen.

Das folgende Beispiel zeigt ein Frameset mit zwei Fenstern oben und unten. Das obere Fenster hat bei der Frameset-Definition den Namen oberesFenster erhalten. Aus dem unteren Frame-Fenster wird nun auf ein JavaScript im oberen Frame-Fenster zugegriffen

Beispieldatei im oberen Frame-Fenster:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
<script type="text/javascript">
var c = 0;

function gibaus_c () {
  alert(c);
}

function erhoehe_c () {
  c++;
  window.setTimeout("erhoehe_c()", 100);
}
</script>
</head><body onLoad="erhoehe_c()">
<p>Hier wird einfach nur 10 mal pro Sekunde die Variable <i>c</i> erh&ouml;ht!</p>
</body></html>

Beispieldatei im unteren Frame-Fenster:

<html><head><title>Test</title>
<script type="text/javascript">
function reset_c () {
  parent.oberesFenster.c = 0;
}
</script>
</head><body>
<p>
<a href="javascript:parent.oberesFenster.gibaus_c()">Variable <i>c</i> anzeigen!</a><br>
<a href="javascript:reset_c()">Variable <i>c</i> auf 0 setzen!</a>
</p>
</body></html>

Erläuterung:

Im oberen Fenster ist ein Script mit zwei Seite Funktionen namens gibaus_c() und erhoehe_c() notiert. Die Funktion erhoehe_c() wird mit dem Event-Handler onLoad im einleitenden <body>-Tag erstmals gestartet und ruft sich dann mit Hilfe der Methode Seite setTimeout() alle 100 Millisekunden, also 10 mal pro Sekunde selber wieder auf. Dabei erhöht sie jedesmal die Variable c um 1.

Im unteren Fenster sind zwei Verweise notiert. Der erste gibt den aktuellen Zählerstand von c aus. Dazu wird mit parent.oberesFenster.gibaus_c()" auf die Funktion gibaus_c() im anderen Frame-Fenster zugegriffen. Der zweite Verweis ruft eine Funktion reset_c() auf, die im Dateikopf des eigenen Dokuments notiert ist. Diese greift jedoch mit parent.oberesFenster.c auf die Variable c im anderen Frame-Fenster zu und setzt diese auf 0 zurück.

 nach obennach unten 

JavaScript 1.0Netscape 2.0MS IE 3.0Opera 5.12Mozilla Firefox 1Konqueror 3.3Safari 1.2Lesen length

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

Beispiel:

Beispiel-Seite Anzeigebeispiel: So sieht's aus

<html><head><title>Test</title>
<script type="text/javascript">
for (var 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, dass 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.

 nach oben
weiter Seite document
zurück Seite window
 

© 2005 Seite Impressum