Я сохраняю информацию о веб-странице в хеше 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 и попадает в ловушку в этом цикле, что делает невозможным переход пользователя обратно. есть ли способ предотвратить эту проблему? Спасибо за прочтение.
Раньше я сталкивался с подобной проблемой, используйте window.location.replace(url)
вместо window.location = url;
так что предыдущая страница не будет сохранена в истории сеансов.