2016-09-16 17 views
1

history.pushStateを使用して、要求のページの内容を変更しています。戻るボタンをクリックすると、以前の状態に戻ることができます

history.pushStateの後には、ブラウザの進むボタンが無効になっているので、クリックされるボタンは間違いなく戻るボタンになります。

私はpushStateの前にページのメイン状態に戻っていきたいと思います。メイン州の内容を取得するためにajaxリクエストを使用しますが、ブラウザのURLをメインURLに戻すにはどうすればいいかという問題があります。私はいくつかの問題のためにこれのためにpushStateメソッドを使いたくありません。

私はpushStateを持っているかどうかを知るために、他ではajax成功した後に値を1つ増やします。

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); 
    } 
}) 

のはmainStateが3であり、私が代わりにmainStateに行くの戻るボタンをクリックし、それはmainStateに私を取るとしましょう - 3

誰もが、私はこれを行うことができます知ってください!

答えて

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

あなたのコードは、この

window.onpopstate(function(){ 
    if(pushed){ 
     history.go(--mainState); //FIXED 
    } 
}) 
のようになります。
関連する問題