onHistoryBack과 같은 후크를 제공하는 방법이 있습니까? 나는 현재JavaScript의 기록 back hook
History.Adapter.bind (window, 'statechange', function() {});
와 history.js을 사용하고 있습니다하지만 사용자가 history.back을 (presed 있는지 문의 할 방법이 없음) 또는이 History.pushState() 호출 .. 어떤 생각의 결과인지?
onHistoryBack과 같은 후크를 제공하는 방법이 있습니까? 나는 현재JavaScript의 기록 back hook
History.Adapter.bind (window, 'statechange', function() {});
와 history.js을 사용하고 있습니다하지만 사용자가 history.back을 (presed 있는지 문의 할 방법이 없음) 또는이 History.pushState() 호출 .. 어떤 생각의 결과인지?
내가 한 방식은 실제 사이트를 클릭 할 때마다 변수를 true로 설정하는 것이 었습니다. 그런 다음 statechange 이벤트가이 변수를 검사합니다. 그것이 사실이라면, 그들은 사이트에서 링크를 사용했다. 거짓 인 경우 브라우저 다시 버튼을 클릭했습니다. 예를 들어
: 도움이 :) 상태의 모든 History.savedStates
에 저장됩니다
을
var clicked = false;
$(document).on('click','a',function(){
clicked = true;
// Do something
});
History.Adapter.bind (window, 'statechange', function() {
if(clicked){
// Normal link
}else{
// Back button
}
clicked = false;
});
희망. 등을 누를 때마다 다른 상태가 추가됩니다. 따라서 이론적으로 History.savedStates
을 테스트하여 History.savedStates[History.savedStates.length - 2] == currentState
인지 확인하십시오. 이는 사용자가 단계 a에서 단계 b로, 단계 a로 되돌아 간 것을 나타냅니다. 그러나 사용자는 뒤로 버튼 이외의 다른 방법을 사용할 수 있으므로 사용자 이벤트와 함께 사용해야합니다.
History.getStateByIndex
메서드를 사용하여 저장된 상태를 반환 할 수도 있습니다.
감사합니다. 나는 당신과 같은 접근법을 사용하여 방금 해결했지만, "statechange"훅이 실행되는 것을 막기 위해 "Clicked"수정 사이에 History.pushState (...) 호출을 래핑했습니다. –