Schaltfläche Zurück schlägt nach window.location.replace (href);

9

Ich habe eine einfache Funktion gemacht, die alle Container wie Link ("a" -Element) verhält.

%Vor%

Funktion funktioniert großartig. Anstatt auf die Schaltfläche "Mehr" zu klicken, kann der Benutzer überall auf den Container klicken und wird ordnungsgemäß umgeleitet.

Wenn jedoch der Benutzer nach der Umleitung auf die Schaltfläche "Zurück" klickt, wird der Browser zwei Schritte statt einer wie gewünscht ausgeführt. Was komischer ist, Geschichte sieht OK.

Einfaches Schema zur besseren Beschreibung:

  

Seite1 - & gt; Seite2

     

Seite2 [Benutzer klickt auf "allHot" Container] - & gt; allHot leitet zu Page3

weiter      

Seite3 [Der Benutzer klickt auf den Zurück-Button des Browsers] - & gt; Seite 1

Dies ist ein großer Fehler für die Webseite, an der ich gerade arbeite. Ich habe keine Ahnung, um das zu verhindern. Fehler in Firefox, Chrome und Opera getestet.

Getestet auch auf Opera "kein JavaScript-Modus". Wenn JavaScript deaktiviert ist, tritt das Problem nicht auf.

Vielen Dank im Voraus für einen Hinweis oder eine Lösung.

    
sznowicki 07.08.2012, 10:56
quelle

2 Antworten

29

Verwenden Sie anstelle von replace Folgendes:

%Vor%     
MarcoK 07.08.2012, 10:58
quelle
1

Hinzufügen zu MarcoKs Antwort.

Wenn Sie replace verwenden, ersetzen Sie den Verlaufsstatus, sodass Sie keinen weiteren Status in den Verlauf verschieben.

Wenn Sie Folgendes haben:

Page1 bis State1

Page2 bis State2

und dann verwenden Sie ersetzen ersetzen Sie Page3 bis State2 .

Wenn du die Zurück-Taste drückst, gehst du von State2 zu State1 und deshalb gehst du zu Page1 .

Wenn Sie window.location.href verwenden, fügen Sie einen weiteren Status hinzu, so dass Page3 auf State3 gesetzt wird und wenn Sie auf die Zurück-Schaltfläche klicken, gehen Sie zu State2 mit Page2 als URL.

    
Carlos Calla 05.11.2015 23:33
quelle