Astrid.Kessler: Back() und Go()

Hallo,

meine Page besteht aus 2 Frames:
Frame 1 ist eine Toolbar
Frame 2 ist das Arbeitsfenster
Die Toolbar enthält unter anderem auch einen Back-Button. Soweit kein Problem.

Die Toolbar wird jedoch beim Starten des 2. Frames geladen. Deshalb sind es in Wirklichkeit 2 Schritte zurück, wenn ich im 2. Frame auf die letze Seite will.

Also habe ich kodiert:
parent.frames[1].history.back()
bzw.
parent/window.history.go(-2)

Tatsächlich wird aber jedesmal nur das Toolbar-Frame zurückgesetzt, also nur 1 Rückschritt.

Wo ist mein Fehler ?
Das ganze muß übrigens mit dem IE 3.02 laufen.

Vielen Dank
Astrid Keßler

  1. Hallo Astrid,

    Die Toolbar wird jedoch beim Starten des 2. Frames geladen. Deshalb sind es in Wirklichkeit 2 Schritte zurück, wenn ich im 2. Frame auf die letze Seite will.

    Ich weiss jetzt nicht, ob's wirklich moeglich ist, aber Du koenntest in der Datei, die das <frameset> definiert, im <head> ein JavaScript notieren, das fuer jeden vorhandenen Frame einen leeren Array anlegt. Alle Links werden weiterhin mit Hilfe von JavaScript, also parent.FrameName.location.href=... usw. ausgefuehrt, wobei die Funktion, die die Links ausfuehrt, jeweils auch in den Arrays der Hauptdatei die Namen der aufgerufenen Dateien hinzufuegt. So hast Du in den Arrays Deine eigene Historie aufgerufener Seiten gespeichert und kannst dich mit back-Befehlen einfach an diesen Arrays orientieren, statt auf die Back-Funktion des Browsers zurueckgreifen zu muessen.
    Ich hoffe, das war jetzt nicht zu kompliziert...;-)

    Viele Gruesse
      Stefan Muenz

    1. Hallo Stefan

      Die Toolbar wird jedoch beim Starten des 2. Frames geladen. Deshalb sind es in Wirklichkeit 2 Schritte zurück, wenn ich im 2. Frame auf die letze Seite will.

      Ich weiss jetzt nicht, ob's wirklich moeglich ist, aber Du koenntest in der Datei, die das <frameset> definiert, im <head> ein JavaScript notieren, das fuer jeden vorhandenen Frame einen leeren Array anlegt. Alle Links werden weiterhin mit Hilfe von JavaScript, also parent.FrameName.location.href=... usw. ausgefuehrt, wobei die Funktion, die die Links ausfuehrt, jeweils auch in den Arrays der Hauptdatei die Namen der aufgerufenen Dateien hinzufuegt.

      Hm, ich weiß schon was Du meinst. Ist ein guter Vorschlag, vielen Dank. Aber das hilft mir im speziellen Fall nicht weiter. Ich erkläre das mal:
      Ich entwickle Intranet-Anwendungen für ein intenationales Unternehmen. Beispielsweise möchten alle Manager weltweit die Marktdaten des Unternehmes nach bestimmten Kriterien auswerten. Klassischer Fall. Also wird eine Datenbank abgefragt.
      Bei mir läuft das so, daß über ein simples CGI-Programm eine Server-Applikation aufgerufen wird, die wiederum die Datenbank abfragt. Was zurückkommt zum Web-Server sind komplette Pages, die im Server-Programm dynamisch erstellt wurden. Statische Pages habe ich allenfalls als Vorlagen. Die nötigen Paramater werden wegen des Umfangs per Post-Method übergeben.
      Wenn ich jetzt mit Arrays arbeite, müßte ich nicht nur die Links speichern, sondern auch alle Parameter. Ganz abgesehen davon, daß bei einem Back die Seite neu generiert würde und auf der Serverseite nicht unerheblicher Rechenaufwand entstünde. Der Rechner wurde für meine Anwendung erst kürzlich erweitert.

      Mir wäre es lieber, wenn ich das 'history.back()' irgendwie zum Laufen bringen könnte.
      Übrigens ist es dem IE 3.02 völlig egal wie viele Schritte ich zurückgehen will, 2,3, 10 .... er führt immer nur einen aus ( in dieser Konstellation ). Ich habe keine Ahnung, ob es mit anderen Browsern geht. Das ist auch egal, es muß leider dieser eine sein. Firmenpolitik, seufz.

      Hoffnungsvoll ...
      Astrid

      1. Hallo Astrid,

        Mir wäre es lieber, wenn ich das 'history.back()' irgendwie zum Laufen bringen könnte.

        Hast Du mal was in dieser Richtung probiert?:

        function goBack()
        {
        parent.frames[0].history.back();
        parent.frames[1].history.back();
        }
        .... und in HTML:
        <a href="javascript:goBack()">zurueck</a>

        Schliesslich ist das history-Objekt ein Kind des window-Objekts und damit auch auf Frame-Fenster einzeln anwendbar.

        Viele Gruesse
          Stefan Muenz

        1. Hallo Stefan,

          Hast Du mal was in dieser Richtung probiert?:

          function goBack()
          {

          »»  parent.frames[0].history.back();
          »»  parent.frames[1].history.back();

          }

          Ja, habe ich, schau mal in meine erste Anfrage.
          Ich habe auch eine ganze Reihe von Varianten von back() und go() durchgespielt.
          Ergebnis ist immer das gleiche: 1 Schritt zurück

          Gruß
          Astrid