2016-09-16 2 views
1

Ich verwende die history.pushState, um den Inhalt einer Seite mit ajax Anfrage zu ändern.Wie kann ich zum vorherigen Zustand zurückkehren, wenn auf die Schaltfläche Zurück geklickt wird

Und es ist sehr sicher, dass nach einem history.pushState, der Vorwärts-Button im Browser deaktiviert ist, so dass definitiv jede Schaltfläche, die geklickt werden würde, die Schaltfläche Zurück sein wird.

Also ich möchte zurück zum Hauptzustand der Seite vor dem PushState. Ich benutze Ajax-Anfrage, um den Inhalt des Hauptzustands abzurufen, aber das Problem ist, dass wie kann ich die URL im Browser zurück zur Haupt-URL machen. Ich möchte nicht die PushState-Methode dafür wegen einiger Probleme verwenden

Ich inkrementiere einen Wert um eins nach dem Ajax Erfolg in anderen zu wissen, wie weit ich PushState habe.

var mainState; 
var pushed = false; 
$('a').click(function(){ 
    $.ajax({ 
     url: "/path/to/content", 
     success: function(data){ 
      $('div').html(data); 
      history.pushState('state', 'title', 'url'); 
      mainState ++; 
      pushed = true; 
     } 
    }) 
}) 

window.onpopstate(function(){ 
    if(pushed){ //knowing fully well that the forward button is disabled 
     // take it back to the main state 
     history.go(-mainState); 
    } 
}) 

sagen Lassen Sie die mainState 3 ist und ich auf die Zurück-Taste, anstatt auf die mainState gehen sie mich mainState nimmt - 3.

Bitte jemand weiß, dass ich dies tun kann?

Antwort

0
var mainState = 3; 
-mainState; //-3 
--mainState; //2 

Der Code sollte wie folgt aussehen

window.onpopstate(function(){ 
    if(pushed){ 
     history.go(--mainState); //FIXED 
    } 
}) 
Verwandte Themen