Вернуться на предыдущую страницу независимо от изменений в строке запроса

Aug 17 2020

У меня есть страница с доступной для поиска таблицей. Я написал кнопку «Назад», чтобы вернуться на предыдущую страницу:

<a href="javascript:history.back()">Back</a>

Например, URL-адрес моей домашней страницы:

https://xxxxxx.com

Я захожу на страницу с доступной для поиска таблицей с моей домашней страницы (или любой другой страницы) :

https://xxxxxx.com/data

Когда я выполняю поиск, URL становится следующим:

https://xxxxxx.com/data?search=*sth*

Когда я нажимаю кнопку «Назад», URL становится следующим:

https://xxxxxx.com/data

На самом деле я хочу:

https://xxxxxx.com/

(Или страница, на которую пользователь заходил раньше /data)


Как я могу переписать свой javascript на кнопке поиска, чтобы кнопка «Назад» могла перейти на настоящую страницу?

Ответы

3 MauriceNino Aug 17 2020 at 15:36

Вместо того history.back(), что возвращается только на один, вы можете сделать window.location.replace(window.location.host), который загружает корневую страницу.

Для получения дополнительной информации window.location:https://developer.mozilla.org/en-US/docs/Web/API/Window/location

Редактировать:

Если вы хотите игнорировать параметры URL, вам необходимо изменить способ перехода на другую страницу.

Вместо этого window.history.pushState(...)вы должны использовать window.history.replaceState(...), когда навигация должна игнорироваться при щелчке назад.

Здесь можно подробнее прочитать по этой теме: какова компромисс между выталкиванием истории и заменой?