2009-07-04 9 views
5

In einer Webanwendung verwenden wir IFRAME, damit Benutzer Elemente für die übergeordnete Seite auswählen können.firefox iframe history

Das Problem ist, dass FIREFOX (3.5) jedes Mal, wenn IFRAME geöffnet wird, eine Kopie derselben (übergeordneten) Seite zum Verlauf hinzufügt.

Die Webanwendung verwendet history.back(), um von der übergeordneten Seite zu einer Seite zu wechseln, die diese Seite aufgerufen hat.

Wir können das beheben, indem Sie die "Zurück" -Seite als Parameter vom Aufrufer an den Aufrufer übergeben.

Die Taste BACK bleibt weiterhin defekt (der Benutzer drückt die Taste zurück, bleibt aber auf der gleichen Seite).

Das andere Problem, das erstellt wird, ist, dass wir einige Seiten aus dem Verlauf möchten. Wir möchten nicht, dass der Benutzer zurück zu einer INSERT Seite wechselt. Dies ist leicht mit location.replace auf der INSERT Seite, wenn Sie fertig, aber nicht auf FIREFOX mit vielen Einträgen der gleichen INSERT Seite getan

.

Antwort

1

Wenn das Problem ist, dass Ihre Einträge doppelt vorhanden sind, gehen

history.back(-2) 

oder -3 oder -4, wenn statt history.back() or history.back(-1) benötigt.

Aber dann, wenn ich Sie wäre, würde ich versuchen, die Iframes basierte Lösung zu Graben und etwas zu bauen, das sie gar nicht mit sich bringt, da die Kommunikation zwischen iframes und einem Dokument Eltern neigt dazu, ein Fehler zu sein MAGNET

3

nicht sicher, ob Ihr Problem gleiche ist, wie ich heute habe, aber ...

wenn es ein iframe auf der Seite und iframes src Änderungen der Browser (FF 4.0 in meinem Fall) hält es für eine sein Navigation und beim Drücken der Zurück-Taste navigiert es einen Schritt zurück in diesen iframe.

Es verhält sich jedoch anders, wenn Sie dieses iframe dynamisch mit Javascript erstellen, nachdem die Seite geladen wurde. Fortlaufende Änderung von iframes src zählt nicht als Navigation und Browser legt keine Seiten in den Verlauf, was zu einem erwarteten Verhalten der Zurück-Schaltfläche führt.

+1

Ich weiß nicht, ob das 2011 korrekt war, aber das stimmt heute nicht, wenn ich das richtig lese. Iframes müssen zur gleichen Zeit ersetzt oder erstellt werden, zu der das Verlaufsereignis geändert wird. (in der gleichen Funktionskette) Der Back/Forward-Event-Chain-Propagation-Mechanismus fügt somit diesen neu erstellten Iframe in Firefox nicht hinzu, und alles ist gut. – Agamemnus

Verwandte Themen