Подтвердить что ты не робот

Как изменить URL-адрес без изменения истории браузера

До сих пор я знаю только, что если я хочу изменить URL без перезагрузки всей страницы, я должен использовать HTML-браузер history API.

Я использую эту концепцию на своем веб-сайте. Возьмем пример. Предположим, что пользователь находится на этой странице

 https://www.example.com/aboutus

а затем он переходит к списку продуктов, в котором у нас есть фильтры. При нажатии любой системы фильтров генерируется новый URL-адрес примерно так:

https://www.example.com/products?brands[]=song&brands[]=samsung&condition[]=new

Внутренне это просто вызов

history.pushState({}, 'Title', link.href);

Но у него есть одна проблема. При нажатии кнопки back происходит переход к предыдущему фильтру. Я не хочу эту функциональность. Я хочу, нажав кнопку "Назад назад", она должна перейти на страницу, которая находится до страницы current. В нашем случае предполагается взять

https://www.example.com/aboutus

Спасибо.

4b9b3361

Ответ 1

Вы ищете replaceState(), он заменяет текущую позицию в истории, а не нажимает новую, например pushState() делает

из MDN

history.replaceState() работает точно так же, как history.pushState()кроме того, что replaceState() вместо этого изменяет текущую запись истории создания нового.

replaceState() особенно полезен, если вы хотите обновить объект состояния или URL-адрес текущей записи истории в ответ на некоторые действий пользователя.

Помните, некоторые функции недоступны в старых браузерах. Но есть библиотека что может помочь вам.