Revenir à la page précédente indépendamment des changements dans la chaîne de requête

Aug 17 2020

J'ai une page avec un tableau de recherche. J'ai écrit un bouton "Retour" pour revenir à la page précédente:

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

Par exemple, l'URL de ma page d'accueil est:

https://xxxxxx.com

J'entre dans la page avec un tableau interrogeable depuis ma page d'accueil (ou toute autre page) :

https://xxxxxx.com/data

Lorsque j'effectue une recherche, l'URL devient:

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

Lorsque je clique sur le bouton "Retour", l'URL devient:

https://xxxxxx.com/data

Ce que je veux vraiment, c'est:

https://xxxxxx.com/

(Ou la page où l'utilisateur entre avant /data)


Comment puis-je réécrire mon javascript sur le bouton de recherche, afin que le bouton Retour puisse accéder à la page réelle?

Réponses

3 MauriceNino Aug 17 2020 at 15:36

Au lieu de history.back(), qui ne recule que d'un seul, vous pouvez le faire window.location.replace(window.location.host), ce qui charge la page racine.

Pour obtenir plus d'informations sur window.location:https://developer.mozilla.org/en-US/docs/Web/API/Window/location

Éditer:

Si vous souhaitez ignorer les paramètres d'URL, vous devez modifier la façon dont vous accédez à une autre page.

Au lieu de window.history.pushState(...), vous devez utiliser window.history.replaceState(...), lorsque la navigation doit être ignorée lors d'un clic arrière.

Voici plus à lire sur ce sujet: Quel est le compromis entre l'historique push et replace?