我将网页信息存储在URL哈希中,包括页码。为了确保页面不超过我添加此条件的总页数。假设总页数= 10
//get page value from URL
function getParams(val){
return decodeURI(
(RegExp('[#|&]' + val + '=' + '(.+?)(&|$)').exec(location.hash)||[,''])[1]
);
}
var totalPages = 10;
$(window).on('hashchange',function(){
if(getParams('page') > totalPages){
window.location = "#page=1";
}
});
问题是,如果页面从另一个总页数更多的时间加载:
www.website.com#page=11
它重定向到第1页,但是如果用户导航回来,它会立即返回到第11页,然后重定向回到第1页并陷入该周期,使用户无法导航回来。有什么方法可以防止这个问题吗?谢谢阅读。
答案 0 :(得分:1)
之前我遇到过类似的问题,请使用window.location.replace(url)
代替window.location = url;
,以便上一页不会保存在会话历史记录中。