其实你只需要理解一点,onpopstate
是在history.back()
之后调用的。所以这个时候e.state
里返回实际上是back
之后的状态,比如我在下面的代码里。一次push了两个state,当我点击一次后退的时候{page : 2}
的state已经pop出去了,这时候e.state
里就只剩下{page : 1}
了。
(function() {
$('a').bind('click', function() {
window.history.pushState({page : 1}, 'test', '#test1');
window.history.pushState({page : 2}, 'test', '#test2');
return false;
});
window.onpopstate = function(e) {
console.log(e.state);
};
})();