кнопка назад, вызывающая изменение хеша

0

Я сохраняю информацию о веб-странице в хеше 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 и попадает в ловушку в этом цикле, что делает невозможным переход пользователя обратно. есть ли способ предотвратить эту проблему? Спасибо за прочтение.

Теги:
url

1 ответ

1
Лучший ответ

Раньше я сталкивался с подобной проблемой, используйте window.location.replace(url) вместо window.location = url; так что предыдущая страница не будет сохранена в истории сеансов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню