Informatik :: JavaScript :: Mehrere Frames auf einmal laden
Die meisten Seiten sind inhaltsmäßig in mindestens 3 Ebenen strukturiert.
Beispiel:
Das Inhaltsverzeichnis der Hauptthemen soll immer zu sehen und verfügbar sein. Man benötigt also zunächst ein Frameset mit 2 Frames. In einem wird das Inhaltsverzeichnis der Hauptthemen (main.html) und in den anderen die Willkommensseite (home.html) geladen.
Das Inhaltsverzeichnis der Hauptthemen enthält 3 Links (Thema A, B, C). Bei Auswahl eines Hauptthemas soll das Inhaltverzeichnis des Themas und eine Einführungsseite zum Thema geladen werden.
Es müssen also jeweils 2 Frames gleichzeitig geladen werden.
Das Inhaltsverzeichnis zum jeweiligen Thema enthält wiederum Links (Thema 1, 2, 3, ...), die entsprechende Seiten referenzieren.
Es stellt Methoden und Eigenschaften zur Verfügung, über die Frames angesprochen und verändert werden können.
Eine Kurzreferenz des frames[#]-Objektes findest du in der Objektreferenz.
Die Frames werden mittels Indexnummer durchnummeriert, so wie sie im HTML-Code erzeugt werden. frames[2] steht z.B. für den 3. Frame der Seite.
Das Besondere am frames[#]-Objekt ist, dass es fast identisch mit dem window-Objekt ist. Somit kann man alle Methoden und Eigenschaften des window-Objektes auf das Frame-Objekt anwenden. Eine Kurzreferenz des window-Objektes steht in der Objektreferenz zur Verfügung.
Um einen Frame anzusprechen ist stets das Objekt parent nötig. parent spricht das im Basisfenster angezeigte Fenster an (so genanntes Elternteil). parent.frames[1].name ermittelt z.B. den Namen des 2. Frames.
Um nun eine Datei zu laden, benötigt man nur noch das Objekt location mit der Eigenschaft href.
Beispiele:
window.location.href="home.html" //lädt die Datei home.html ins Browserfenster
parent.frames[1].location.href="start.html" //lädt die Datei start.html in den 2. Frame.
Erzeuge die oben im Beispiel dargestellte Struktur!
Hinweise:
Die Funktion zweiframes() soll sowohl in den linken als auch in den rechten Frame jeweils eine Datei laden. Dazu müssen der Funktion beim Aufruf 2 Parameter übergeben werden, nämlich die URL bzw Dateinamen der beiden Dateien. Also:
function zweiframes(datei1,datei2)
{
parent.frames[1].location.href = datei1;
parent.frames[2].location.href = datei2;
}
<a href="javascript:zweiframes('inhalta.html','maina.html')">Thema A
Analog geht man mit den beiden anderen Verweisen (Thema B bzw. Thema C) vor
<a href="a1.html" target="rechts">Thema 1
Ergänze alle Inhaltsverzeichnisse durch den Bilderwechsel aus Aufgabe 2 der Anwendung "Bilder interaktiv wechseln", so dass obiges Beispiel realisiert wird!