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