2 Frameinhalte gleichzeitig ändern (Framenummer)
Innerhalb eines Framesets sollen über eine Navigation beim Anklicken eines Links Inhalte von zwei Frames gleichzeitig ausgetauscht werden. Bei der Tauschaktion erfolgt die 'Ansprache' hier über die laufende Nummer der Frames, die intern vom Browser vergeben wurden.
Die Ansprache der Frames über die interne Framenummer
Den Frame mit der Nummer 'ansprechen'?
Sie haben bereits die Methode kennen gelernt, einen Frame über den Namen anzusprechen. Das ist nur möglich, wenn bei der Definition des Framesets jedem Frame gleich ein Name zugeordnet wurde. Es geht aber auch anders!
Da Frames bei der Definition intern (vom Browser) durchnummeriert werden (Beginn bei Null), kann man sie auch mit ihrer laufenden Nummer ansprechen. Der erste Frame hat die Nummer 0, der zweite Frame die Nummer 1, ... und so weiter. Möchte man z.B. den Inhalt des dritten Frames ändern würde die Anweisung so lauten:
Zeige im Frame (Nummer) 2 die Datei "dateiname2.htm"
Struktur einer Framesetdatei
Frame 1 (oben) für das Hauptmenü
(interne Nummer = 0)
Frame 2 (nav) für die Untermenüs
(interne Nummer = 1)
Frame 3 (anzeige) für den Inhalt
(interne Nummer = 2)
Die Nummern werden in der Reihenfolge der Definition vergeben
|
|
Notierung:
<frameset rows="120,*">
<frame src="haupt.htm" name="oben">
<frameset cols="200,*">
<frame src="nav01.htm" name="nav">
<frame src="1b.htm" name="anzeige">
</frameset>
</frameset>
|
|
Aufgabenstellung
Praktisches Beispiel einer Anwendung:
Durch einen Mausklick auf einen Menüpunkt im Hauptmenü (im Frame '0') der Internetseite soll nicht nur das Untermenü (im Frame '1') ausgetauscht sondern auch die dazu passende Startseite (im Frame '2') angezeigt werden.
|
|
Dazu soll aber nicht der Framename sondern die Framenummer genutzt werden.
Zur Anschauung:
Nach dem ausgeführten Mausklick soll die Ansicht der Seite dann so aussehen.
Die beiden neuen Dateien werden im Frame mit der Nummer '1' und im Frame mit der Nummer '2' angezeigt.
|
|
2 Frameinhalte gleichzeitig ändern
Das Script zum Tausch von 2 Frameinhalten gleichzeitig wird im Head-Bereich der betreffenden HTML-Datei (hier im Hauptmenü) notiert:
<script type="text/javascript" language="JavaScript">
<!--
function zweiframes(URL1,F1,URL2,F2)
{
parent.frames[F1].location.href=URL1;
parent.frames[F2].location.href=URL2;
}
//-->
</script>
Die Funktion zweiframes() erwartet beim Aufruf 4 Übergabeparameter:
1) den 1. Dateinamen (URL1)
2) die Framenummer eines Frames für die Anzeige der 1. Datei
3) den 2. Dateinamen (URL2)
2) die Framenummer eines Frames für die Anzeige der 2. Datei
Diese Übergabewerte werden beim Aufruf im Body (Link) eingetragen.
Wichtig: Die Dateinamen stehen in eingestrichenen Anführungszeichen (Hochkommas). Die Framenummern nicht!
<a href="javascript:zweiframes('nav02.htm',1,'start02.htm',2)"> Linktext </a>
Demo und Download
1) Oben im Kopf dieser Beispieldatei können sie ein Beispiel der Funktion aufrufen und außerdem das Demo mit allen zugehörigen Dateien als ZIP herunterladen.
2) Ich habe ein weiteres Beispiel zu diesem Thema hergestellt. Diese Beispieldatei hat 6 Frames und öffnet in einem neuen Browserfenster. Demo
3) Die Homepage-Vorlage Frames F03 nutzt ein JavaScript zum Tausch von 2 Frameinhalten gleichzeitig (Framenamen im Script fest eingetragen). Die Vorlage steht im Menü 'Downloads' zur Verfügung.
Demo (öffent im neuen Browserfenster) DOWNLOAD

|