代码如下:$(function() {
$('a').bind('click', function() { var actionObj = $(this); var actionText = actionObj.text(); var stateObj = { title : actionText, url : actionObj.attr('href'),
msg : actionText
}; window.history.pushState(stateObj, actionObj, actionObj.attr('href'));
}); window.onpopstate = function(e) { console.log(e.state);
};
})查了一些资料,完全不知道问题在哪里……chrome 或者 firefox 都不行……不知道哪里做错了……
1 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
其实你只需要理解一点,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);
};})();添加回答
举报
0/150
提交
取消
