как изменить url без изменения истории браузера
До сих пор я только знаю, что если я хочу изменить URL без перезагрузки всей страницы, я должен использовать HTML browser 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 переходит к предыдущему фильтру. мне не нужна эта функциональность . Я хочу, при нажатии кнопки browser back он должен перейти на страницу, которая находится перед current страницей. В нашем случае предполагается принять к
https://www.example.com/aboutus
Спасибо.
1 ответ:
Вы ищете
replaceState(), он заменяет текущую позицию в истории вместо того, чтобы толкать новую, какpushState()делаетОт MDN
history.replaceState()работает точно так же, какhistory.pushState()за исключением того, чтоreplaceState()изменяет текущую запись истории вместо этого о создании нового.
replaceState()особенно полезно, когда вы хотите обновить объект состояния или URL текущей записи истории в ответ на некоторые действие пользователя.Помните, некоторые функции недоступны в старых браузерах . Но есть библиотека это может тебе помочь.