J'essaie de changer une URL hachée (document.location.hash) avec la méthode replace, mais cela ne fonctionne pas.
$(function(){
var anchor = document.location.hash;
//this returns me a string value like '#categories'
$('span').click(function(){
$(window).attr('url').replace(anchor,'#food');
//try to change current url.hash '#categories'
//with another string, I stucked here.
});
});
Je ne veux pas changer/rafraîchir la page, je veux juste remplacer l'URL sans aucune réponse.
Remarque: je ne veux pas résoudre ce problème avec une solution href = "# food".
Utilisez location
ou window.location
au lieu de document.location
car ce dernier n'est pas standard.
window.location.hash = '#food';
Cela remplacera le hachage de l'URL par la valeur que vous lui avez définie.
Vous pouvez préférer la réponse de cette question .
La différence étant qu'avec history.replaceState()
vous ne faites pas défiler jusqu'à l'ancre, remplacez-la seulement dans la barre de navigation. Il est pris en charge par tous les principaux navigateurs, source .
history.replaceState(undefined, undefined, "#hash_value")