2016-09-16 7 views
1

history.pushState을 사용하여 페이지 내용을 요청으로 변경하고 있습니다.뒤로 버튼을 클릭하면 이전 상태로 되돌릴 수 있습니다.

그리고 history.pushState 이후에는 앞으로 버튼이 브라우저에서 사용 중지되므로 클릭 한 버튼은 뒤로 버튼입니다.

그래서 pushState 이전 페이지의 주 상태로 돌아가고 싶습니다. 주정부의 내용을 검색하기 위해 아약스 요청을 사용하지만 문제는 브라우저에서 URL을 메인 URL로 되돌릴 수있는 방법입니다. 일부 문제로 인해 pushState 메서드를 사용하고 싶지 않습니다.

pushState가 얼마나 멀리 있는지 알기 위해 다른 항목에서 아약스 성공 후 값을 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 
    } 
}) 
과 같아야합니다