Jusqu'à présent, je sais seulement que si je veux changer d'URL sans recharger toute la page, je dois utiliser le navigateur HTML history API.
J'utilise ce concept dans mon site Web. Prenons l'exemple. Supposons que l'utilisateur se trouve sur cette page
https://www.example.com/aboutus
puis il va à la liste des produits dans laquelle nous avons des filtres. En cliquant sur un système de filtres, vous générez une nouvelle URL quelque chose comme ceci
https://www.example.com/products?brands[]=song&brands[]=samsung&condition[]=new
En interne, il ne fait qu'appeler
history.pushState({}, 'Title', link.href);
Mais, il a un problème. Cliquez sur le bouton back
pour revenir au filtre précédent. Je ne veux pas de cette fonctionnalité . Je veux, en cliquant sur le bouton de retour du navigateur, il devrait aller à la page qui est avant la page current
. Dans notre cas, il est supposé prendre
https://www.example.com/aboutus
Merci.
Vous recherchez replaceState()
, il remplace la position actuelle dans l'historique au lieu d'en pousser une nouvelle, comme pushState()
le fait
history.replaceState()
fonctionne exactement commehistory.pushState()
sauf quereplaceState()
modifie l'entrée d'historique actuelle au lieu d'en créer une nouvelle.
replaceState()
est particulièrement utile lorsque vous souhaitez mettre à jour l'objet d'état ou l'URL de l'entrée d'historique actuelle en réponse à une action de l'utilisateur.
Rappelez-vous, certaines fonctions ne sont pas disponibles sur les anciens navigateurs . Mais il y a une bibliothèque qui pourrait vous aider.