2 Frames History
    
 HomeJavaScript • mehrere Frameinhalte zeitgleich ScriptCode 

  Für 2 Frameinhalte zurück blättern

Im Frameset zurückblättern bedeutet hier, in zwei Frames die derzeit angezeigten Inhalte auszutauschen. Ein Beispiel mit 3 Frames - Mouseover zur Anschaung und Verdeutlichung der Aufteilung dieses Framesets.

history.go() - history.back()

Frame 1 - name="oben"

Frame 2 - name="nav"

Frame 3 - name="anzeige"



Frame 1 (name="oben") für den Titelbereichoben
Frame 2 (name="nav") enthält die Navigation
nav
Frame 3 (name="anzeige") enthält den Inhaltanzeige



Hier soll in den beiden Frames "nav" und "anzeige" gleichzeitig geblättert werden.

Anweisung: Blättere in den beiden Frames jeweils um eine Seite zurück / vor


Dem Script werden beim Aufruf die beiden betreffenden Framenamen übergeben.

Im Script wird der Text "parent." und der übergebene Framename zu einem Textstring zusammengefügt. Das geschieht für beide Framenamen.

Diese beiden Strings werden abgelegt in den Variablen Frame01 und Frame02.

Zum Zurückblättern wird der JavaScript-Befehl history.back() für jeden Frame ausgeführt. Analog funktioniert das für das Vorwärtsblättern.


   Das Script im Head

<script type="text/javascript" language="JavaScript">
<!--

// Funktion 1 zurück blättern


function InFramesZurueck(FrName1,FrName2) {
      Frame01=eval("parent."+FrName1);
      Frame02=eval("parent."+FrName2);
      Frame01.history.back();
      Frame02.history.back();
}

// Funktion 2 vorwärts blättern

function InFramesVor(FrName1,FrName2) {
      Frame01=eval("parent."+FrName1);
      Frame02=eval("parent."+FrName2);
      Frame01.history.forward();
      Frame02.history.forward();
}
//-->
</script>


In der SELFHTML wird beschrieben, das einige Browser 'vergessen' den zweiten Schritt auszuführen. Also nicht verweifeln falls das nicht zuverlässig funktioniert.

Abhilfe für den Opera schafft Stefan Münz durch einen zeitverzögerten Aufrufes des zweiten Scrittes:
if (!window.opera) window.setTimeout("Frame02.history.forward()",10);



   Der Aufruf im Body

<a href="#" onclick="InFramesZurueck('nav','anzeige');return false">
zurück blättern
</a>

<a href="#" onclick="InFramesVor('nav','anzeige');return false;">
vorwärts blättern
</a>





   zur Erinnerung: Frameset definieren


Ausführlichere Informationen zur Definition von Framesets unter:

Frames - Erkärungen.
<frameset rows="100,*">
   <frame name="oben" src="titel.htm">
   <frameset cols="100,*">
        <frame name="nav" src="navigation01.htm">
        <frame name="anzeige" src="seite01.htm">
   </frameset>
</frameset>











NACH OBEN