Sven: 3 Frames gleichzeitig ändern --> Browser-Back-Fkt. ???

Hallo alle,
Undzwar habe ich folgendes Script verwendet, um den Inhalt von 3 Frames gleichzeitig zu ändern:
function DreiFrames(URI1,F1,URI2,F2,URI3,F3) {
  Frame1=eval("parent."+F1);
  Frame2=eval("parent."+F2);
  Frame3=eval("parent."+F3);
  Frame1.location.href = URI1;
  Frame2.location.href = URI2;
  Frame3.location.href = URI3;
}
Ein Link würde so aussehen:
<a href="javascript:DreiFrames('datei1.html','frame1','datei2.html','frame2','datei3.html','frame3')">Link</a>

Wenn ich jetzt jedoch auf den "Back"-Button des Browsers klicke, dann ändert sich nur der Inhalt eines Frames in den ursprünglichen Inhalt zurück. Ich muss also dreimal auf "Back" klicken, damit ich wieder "eine ganze Seite" zurück bin. Gibt es denn da irgend eine Möglichkeit, dies zu verbessern, dass man nur noch einen Klick braucht? Also es geht speziell um den "Back-Button" des Browsers, wie ich das mit nem normalen "zurück"-Link mache, weiss ich.
Kann mir da jemand helfen? *hoff*
Danke im Vorraus,
Grüße Mithrandir

  1. Hallo alle,
    Undzwar habe ich folgendes Script verwendet, um den Inhalt von 3 Frames gleichzeitig zu ändern:
    function DreiFrames(URI1,F1,URI2,F2,URI3,F3) {
      Frame1=eval("parent."+F1);
      Frame2=eval("parent."+F2);
      Frame3=eval("parent."+F3);
      Frame1.location.href = URI1;
      Frame2.location.href = URI2;
      Frame3.location.href = URI3;

    Das ist zwar aus selfhtml, aber furchtbar:

    schreib einfach:

    function DreiFrames(URI1,F1,URI2,F2,URI3,F3) {

    parent[F1].location.href = URI1;
    parent[F2].location.href = URI2;
    parent[F3].location.href = URI3;
    }

    Wenn ich jetzt jedoch auf den "Back"-Button des Browsers klicke, dann ändert sich nur der Inhalt eines Frames in den ursprünglichen Inhalt zurück. Ich muss also dreimal auf "Back" klicken, damit ich wieder "eine ganze Seite" zurück bin. Gibt es denn da irgend eine Möglichkeit, dies zu verbessern, dass man nur noch einen Klick braucht? Also es geht speziell um den "Back-Button" des Browsers, wie ich das mit nem normalen "zurück"-Link mache, weiss ich.

    Das ist einer der vielfältigen Nachteile von frames und das wirst du nur schwer lösen können.

    Struppi.

  2. Hallo Sven,

    Undzwar habe ich folgendes Script verwendet, um den Inhalt von 3 Frames gleichzeitig zu ändern:
    function DreiFrames(URI1,F1,URI2,F2,URI3,F3) {

    Wenn ich jetzt jedoch auf den "Back"-Button des Browsers klicke, dann ändert sich nur der Inhalt eines Frames in den ursprünglichen Inhalt zurück. Ich muss also dreimal auf "Back" klicken, damit ich wieder "eine ganze Seite" zurück bin.

    Du kannst das Backbutton-Problem umgehen, wenn du:

    a) eine der 3 Seiten (idealerweise die mit dem Inhalt) direkt verlinkst.
    <a href="seite.htm target="...">

    b) in seite.htm die beiden anderen Frames synchronisierst.
    <body onLoad="parent.frames.bla.location.replace('x.htm'); parent.frames.blub.location.replace('y.htm');

    das location.replace() verhindert, dass die URI in die History des Browsers aufgenommen wird.
    Alles klar? Zu Risiken und Nebenwirkungen kannst du noch http://www.maxx4u.de/drweb/frames/ befragen.

    Viele Grüße,

    Jochen

  3. ich hab mich auch ewig mit der java lösung eines vergleichbaren
    problems gestritten, und bin dann drauf gekommen, dass es eigentlich
    viel einfacher wäre, das gesamte frameset zu verändern.
    dazu muss man dann zwar eigene framesets schreiben, aber das laden
    egal wie vieler frames gleichzeitig ist garantiert immer synchron.

    mfg
    meeke