我正在使用history.pushState
更改包含ajax
请求的网页内容。
并且非常肯定在history.pushState
之后,在浏览器中禁用了前进按钮,所以肯定任何点击的按钮都是后退按钮。
所以我想在pushState之前回到页面的主要状态。我使用ajax请求来检索主状态的内容,但问题是如何让浏览器中的url返回主url。由于某些问题,我不想使用pushState方法
在ajax成功之后,我将一个值增加1,以便知道我有多远pushState。
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 :(得分:0)
var mainState = 3;
-mainState; //-3
--mainState; //2
您的代码应如下所示
window.onpopstate(function(){
if(pushed){
history.go(--mainState); //FIXED
}
})