richard: history.back() bei Frames

Beitrag lesen

Hallo Oliver!

Zu deiner Frage: Ja, der IE verwaltet eine "globale history" für alle Frames.
Um dein Problem zu lösen, bedarf es einigen Aufwands.
Ansatz:
Du erzeugst dir deine eigene Historyverwaltung und zwar so:
Auf einem Frame (evtl Hidden, auf jeden Fall immer vorhanden), nennen wir ihn Navigate, führst du die Verwaltung mit den Funktionen
1. saveHistoryPos(Framenr, Pos)
2. getBackHistoryPos(Framenr)
und einem zweidimensionalen dynamischen Array, in dem bei Aufruf von (1) ein entsprechender eintrag vorgenommen wird.

Jede deiner Frames führt folgenden Eintrag: <body onload="saveHistoryPos(<Framenr, const>, history.length)" >

Somit merkst du dir, an welcher position die Seite in der History steht.

Um nun zurück zu kommen, benötigst du ein history.go(-(Historyposition der akt. Seite(a) - Historypos der backSeite(b)))

(b) lassen wir uns von der Funktion (2) für den entsprechenden Farme aus dem Array zurückgeben.
(a) ist wie bereits bekannt history.length, da jede Seite immer nach dem Laden hinten in die History eingehängt wird.

Viel Glück,
Richard