Lade 2 (oder mehr) Frames mit einem Klick - Javascript Methode

Hier ist ein Beispiel.

Zuerst brauchen wir ein paar Zielseiten. Nimm die folgenden und speichere sie in Deinem Arbeitsverzeichnis.

zjoe_bill.html
zjoe_ed.html
zjoe_frank.html
zjoe_tom.html
      zjackie_amy.html
zjackie_joan.html
zjackie_lisa.html
zjackie_toni.html
zjohn_al.html
zjohn_dean.html
zjohn_george.html
zjohn_ralph.html
      zjenny_denise.html
zjenny_marci.html
zjenny_pam.html
zjenny_shannon.html

Nebenbei, sie beginnen alle mit z, also stehen sie alle zusammen im Verzeichnis und sind leicht mit einem mal zu finden.

Zuerst bauen wir ein kleines Beispiel. Du brauchst eine Hauptseite, die festlegt, womit man anfängt. Speichere das folgende als  master.html...

<HTML>
<HEAD>
<TITLE>Joe and Jackie's friends</TITLE>
</HEAD>

<FRAMESET COLS="25%,75%">
  <FRAME SRC="dir.html">
  <FRAMESET ROWS="50%,50%">
    <FRAME SRC="zjoe_bill.html" NAME="right_top">
    <FRAME SRC="zjoe_ed.html" NAME="right_bottom">
  </FRAMESET>
</FRAMESET>

</HTML>

Das ist bis jetzt ganz einfaches HTML. beachte die Frame-Namen. (Wir haben bis jetzt noch nicht dir.html gemacht).

Speichere folgendes als dir.html....

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

</BODY>
</HTML>

Füge Javascript in den HEAD ein...

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hiding
function multiLoad2(doc1,doc2) {
  parent.right_top.location.href=doc1;
  parent.right_bottom.location.href=doc2;
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">

</BODY>
</HTML>

Mach Dir noch keine Gedanken, was das bewirkt.

Füge den text der Links und Anchor-Tags hinzu. Fülle den HREF Teil noch nicht aus.

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hiding
function multiLoad2(doc1,doc2) {
  parent.right_top.location.href=doc1;
  parent.right_bottom.location.href=doc2;
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<P><A HREF="">Joe's friends</A>
<P><A HREF="">Jackie's friends</A>
</BODY>
</HTML>

Jetzt füge den HREF Teil dazu.

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hiding
function multiLoad2(doc1,doc2) {
  parent.right_top.location.href=doc1;
  parent.right_bottom.location.href=doc2;
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<P><A HREF="javascript:multiLoad2('zjoe_bill.html', 'zjoe_ed.html')">Joe's friends</A>
<P><A HREF="javascript:multiLoad2('zjackie_amy.html', 'zjackie_joan.html')">Jackie's friends</A>
</BODY>
</HTML>

Jetzt lade die Hauptseite master.html und Dein Beispiel sollte funktionieren.

In Ordnung, was haben wir gemacht? Wie funktioniert das?

Kurz gesagt, wir haben eine Funktion - multiLoad2(). Wir übergeben dieser Funktion Argumente - zjoe_bill.html und zjoe_ed.html. Die Funktion führt diese Argumente aus.

function multiLoad2(doc1,doc2) {
Hier werden zwei Argumente an die Funktion übergeben. Sobald die Funktion sie hat, werden es Variablen doc1 & doc2, damit kann man sie verändern.

parent.right_top.location.href=doc1;
Plaziere das, was in Variable doc1 steht in den rechten oberen Frame.

parent.right_bottom.location.href=doc2;
Plaziere das, was in Variable doc2 steht in den rechten unteren Frame. 

Du kannst das einfach erweitern, um mehrere Frames zu ändern. Füge das in die master.html und speichere es als  master2.html...

<HTML>
<HEAD>
<TITLE>Joe and Jackie's friends</TITLE>
</HEAD>

<FRAMESET COLS="25%,75%">
  <FRAME SRC="dir2.html">
  <FRAMESET ROWS="25%,25%,25%,25%">
    <FRAME SRC="zjoe_bill.html" NAME="right1">
    <FRAME SRC="zjoe_ed.html" NAME="right2">
    <FRAME SRC="zjoe_frank.html" NAME="right3">
    <FRAME SRC="zjoe_tom.html" NAME="right4">
  </FRAMESET>
</FRAMESET>

</HTML>

(Vergiss nicht,  dir.html in  dir2.html zu ändern. Wir verwenden eine andere Verzeichnisseite.)

Jetzt füge das zur ursprünglichen dir.html hinzu und speichere es als dir2.html...

<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- Hiding
function multiLoad4(doc1,doc2,doc3,doc4) {
  parent.right1.location.href=doc1;
  parent.right2.location.href=doc2;
  parent.right3.location.href=doc3;
  parent.right4.location.href=doc4;
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<P><A HREF="javascript:multiLoad4('zjoe_bill.html',     'zjoe_ed.html',      'zjoe_frank.html',   'zjoe_tom.html'      )">Joe's friends</A>
<P><A HREF="javascript:multiLoad4('zjackie_amy.html',   'zjackie_joan.html', 'zjackie_lisa.html', 'zjackie_toni.html'  )">Jackie's friends</A>
<P><A HREF="javascript:multiLoad4('zjohn_al.html',      'zjohn_dean.html',   'zjohn_george.html', 'zjohn_ralph.html'   )">John's friends</A>
<P><A HREF="javascript:multiLoad4('zjenny_denise.html', 'zjenny_marci.html', 'zjenny_pam.html',   'zjenny_shannon.html')">Jenny's friends</A>
</BODY>
</HTML>

Jetzt lade master2.html , um Dein Werk zu testen.

Probier ein wenig damit herum und es kann sehr mächtig werden. Das Verknüpfen der 2-Frame JS Version und der 4-Frame JS Version überlasse ich Dir. Bezüglich der Version des zufälligen Ladens sprengt das ein bisschen den Rahmen. Ich habe es nur eingefügt, damit Du das Potential von Javascript bei der Frame-Manipulation sehen kannst.

Und so haben wir das Thema des Änderns von mehreren Frames mit einem Klick abgehandelt. Wie schon gesagt, falls möglich verwende die HTML-Methode dafür.