# 2 frames wechseln mit js



## rolling_a (26. Januar 2001)

hallo ihr javascript-freaks,
wie kann ich 2 frames gleichzeitig wechseln?
zb. den navbarframe und den content-frame.
ich weiss wohl das es geht, nur nicht wie 

schönen dank schonmal.


----------



## Klon (26. Januar 2001)

*HI ho*

Ich weis nicht ob ich dich richtig verstanden habe, also du willst beispielsweise drei frames haben, und wenn du in der einen ein Link anklickst solen sich in den beiden anderen zwei neue Seiten laden?

Wenn es das ist kann ich nur aus SelfHTML zitieren:
Wir machen uns drei 6 Dateien:

Beispiel Teil 1 - Datei frameset.htm:
  <html>
  <head>
  <title>FrameTest</title>
  </head>
   <frameset cols="30%,*">
   <frame src="verweise.htm">
   <frameset rows="25%,*">
     <frame src="welcome1.htm">
     <frame src="welcome2.htm">
   </frameset>
  </frameset>
  </html>

Beispiel Teil 2 - Datei verweise.htm:
  <html>
  <head>
  <title>Verweise</title>
  <script language="JavaScript">
  <!--
   function ZweiFrames(URL1,F1,URL2,F2)
   {  
    parent.frames[F1].location.href=URL1;
    parent.frames[F2].location.href=URL2;
   }
  //-->
  </script>
  </head>
  <body text=#000000 link=#0000CC vlink=#000099 alink=#0000FF>
  <h1>Verweise</h1>
  <a href="javascript:ZweiFrames('neu1.htm',1,'neu2.htm',2)">Link</a>
  </body>
  </html>

Die beiden seiten welcome1.html und welcome2.html und die Seiten new1.html und new2.html, die bei klick auf unser Link jeweils anstelle von welcome1.html und welcome2.html erscheinen sollen.

Das Frameset sieht dann folgendermaßen aus: 






Im Beispiel enthält die Datei verweise.htm 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. Im Kopf der HTML-Datei, also zwischen <head> und </head>, wird mit dem dafür vorgesehenen HTML-Tag <script language="JavaScript"> .... </script> ein  JavaScript-Bereich definiert. Innerhalb dieses Bereichs wird eine  Funktion mit Namen ZweiFrames() definiert. Diese Funktion erwartet vier Parameter:
1. die URL-Adresse des gewünschten Inhalts des ersten Frame-Fensters (URL1)
2. den Index des gewünschten ersten Frame-Fensters innerhalb des Frame-Sets (F1)
3. die URL-Adresse des gewünschten Inhalts des zweiten Frame-Fensters (URL2)
4. den Index des gewünschten zweiten Frame-Fensters innerhalb des Frame-Sets (F2)
Dadurch ist die Funktion allgemein gehalten, d.h. Sie können diese Funktion auch in ganz anderen Frame-Sets zum gleichen Zweck verwenden.
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, z.B. eine beliebige HTML-Datei im gleichen Projekt. 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.

Kannste dir auch nochmal etwas ausführlicher durchlesen auf http://www.netzwelt.com/selfhtml/teda.htm

Hoffe das hilft dir weiter.

Klon


----------

