ajax 탐색 기능이있는 Webapp를 사용하면 html5의 내역 탐색 기능을 활용할 수 있습니다.html5 히스토리 탐색 : popstate가 트리거되지 않음 excep on page로드
그러나 popstate 이벤트에 바인딩하면 트리거되지 않습니다. 가능한 HTML5 경우
는(제대로 감지, 데모는 FF로 크롬에서 잘 작동 않음) :
// Callback
function historyChangeHandler(data) {
console.log(data);
}
// Bind
$(window).bind('popstate', historyChangeHandler);
// Trigger
$("a").click(function(e) {
var url = "/";
// ...
console.log("clicked");
history.pushState({url: url}, "", url);
return false;
});
무엇을 작동하지 않습니다
-
그것이 페이지로드에 Excep
- popstate 콜백 historyChangeHandler()는 링크를 클릭 할 때 호출되지 않습니다. 즉, clicked는 인쇄되지만 이벤트는 인쇄되지 않습니다. 내가 뭘하려
:
- 연기의 setTimeout와 pushState 호출.
- e.preventDefault(); 및
- 은 또한 DIV-S에 부착 반환 진실 대신 거짓을 반환 작업 무엇
사실 :
- historyChangeHandler는() 페이지로드라고합니다.
- historyChangeHandler()는 뒤로 버튼을 누를 때 호출됩니다.
- historyChangeHandler()는 앞으로 버튼을 누를 때 호출됩니다.
- 콘솔에서 history.pushState ({url : "/ test"}, "", "/ test")를 호출하는 경우 historyChangeHandler()!
실마리가 있습니까?
코드를 보려면 pushState가 링크를 클릭 할 때 호출됩니다. '그 이유는 무엇입니까?' – sibidiba
pushState를 호출하면 popState가 즉시 트리거 될 것으로 예상합니까? 그건 말이 안돼. 관계없이 당신이 무엇을 기대하고, 당신이 대답을 좋아하든 그렇지 않든간에, 그것은 여전히 예상대로 작동합니다. –