Frames

Es ist manchmal wünschenswert, beim Ausführen eines Verweises nicht nur den Inhalt eines, sondern zweier oder mehrerer Frame-Fenster gleichzeitig zu ändern. Nun kann man in solchen Fällen zwar auf eine Datei verweisen, die ein neues, entsprechendes Frame-Set definiert. Aber wenn Sie viele solcher Verweise haben, wird dieses Verfahren schnell aufwendig. Als Alternative dazu können Sie sich mit einem JavaScript behelfen. Datei rahmen.html:

  <html>
  <head>
  <title>FrameTest</title>
  </head>
  <frameset cols="30%,*">                  (1)
   <frame src="verweise.html">
   <frameset rows="25%,*">
     <frame src="welcome1.html">
     <frame src="welcome2.html">
   </frameset>
  </frameset>
  </html>

Datei verweise.html:

  <html>
  <head>
  <title>Verweise</title>
  <script language="JavaScript">
  <!--
   function ZweiFrames(URL1,F1,URL2,F2)          (2) 
     {  
     parent.frames[F1].location.href=URL1;
     parent.frames[F2].location.href=URL2;
     }
    //-->
  </script>
  </head>
  <body bgcolor="#FFFFFF" text="#000000" link="#0000CC" vlink="#000099" "alink=#0000FF">
  <h1>Verweise</h1>                  (3)
  <a href="javascript:ZweiFrames('cool1.html',1,'cool2.html',2)">Coole Seite</a>
  <br>
  <a href="javascript:ZweiFrames('uncool1.html',1,'uncool2.html',2)">Uncoole Seite</a>
  </body>
  </html>

(1) Frame-Set definieren
Im Beispiel wird eine Datei rahmen.html erstellt, die das Frame-Set bereitstellt. Das Frame-Set bewirkt folgende Konstellation:

Links gibt es eine Spalte mit Verweisen (Navigationsleiste). Die Verweise stehen in der Datei verweise.html. Rechts gibt es zwei Frames. Der obere, kleinere soll jeweils ein Bild und die wichtigsten Daten enthalten. Der untere, größere soll ausführliche Infos bieten. Beim Aufruf des Frame-Sets wird links die Datei verweise.html angezeigt. Rechts werden Projektbegrüßungsdateien mit den Namen welcome1.html und welcome2.html angezeigt.

(2) JavaScript-Funktion zum Ändern zweier Frames definieren
Im Beispiel enthält die Datei verweise.html jene Verweise, bei deren Anklicken sich der Inhalt der beiden rechten Frames gleichzeitig ändern soll. Deshalb wird in dieser Datei der erforderliche JavaScript-Code notiert. Die Funktion ZweiFrames() erwartet vier Parameter:

Innerhalb der Funktion stehen zwei Anweisungen. In der ersten Anweisung wird dem ersten gewünschten Frame-Fenster die gewünschte URL-Adresse zugewiesen, in der zweiten Anweisung wird dem zweiten gewünschten Frame-Fenster die zweite gewünschte URL-Adresse zugewiesen. Über parent kann innerhalb eines Frame-Sets das gesamte Frame-Set-Fenster angesprochen werden. Mit parent.frames[n] lassen sich bestimmte einzelne Frame-Fenster innerhalb des Frame-Sets ansprechen. Der Index beginnt bei 0 zu zählen, d.h. das erste im Frame-Set definierte Frame-Fenster läßt sich mit parent.frames[0] ansprechen, das zweite Frame-Fenster mit parent.frames[1] usw. Die Funktion ZweiFrames bekommt die Fenster-Indizes als Parameter übergeben. Deshalb steht z.B in der ersten Anweisung parent.frames[F1]. Über location.href kann eine URL-Adresse angesprochen werden. Mit dem gesamten Ausdruck parent.frames[F1].location.href=URL1; wird einem Frame-Fenster innerhalb des Frame-Sets eine beliebige URL-Adresse zugewiesen. Da zwei Frames gleichzeitig geändert werden sollen, gibt es zwei solcher Anweisungen.

Ausprobieren