Revenir à la page précédente indépendamment des changements dans la chaîne de requête
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
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?