Le contexte : J'ai une page HTML qui permet de développer certains contenus. Comme seules de petites parties de la page doivent être chargées pour une telle expansion, cela se fait via JavaScript, et non en dirigeant vers une nouvelle URL/page HTML. Cependant, en prime, l'utilisateur peut établir un lien vers ces sections étendues, c'est-à-dire envoyer à quelqu'un d'autre une URL du type
et faire en sorte que la catégorie "foobar" soit ouverte immédiatement pour cet autre utilisateur. Cela fonctionne en utilisant parent.location.hash = 'foobar', donc cette partie est correcte.
Maintenant la question : Lorsque l'utilisateur ferme une telle catégorie sur la page, je veux vider à nouveau le fragment d'URL, c'est-à-dire le transformer. http://example.com/#foobar en http://example.com/ pour mettre à jour l'affichage des permaliens. Cependant, en utilisant parent.location.hash = ''
entraîne un rechargement de toute la page (dans Firefox 3, par exemple), ce que j'aimerais éviter. Utilisation de window.location.href = '/#'
ne déclenche pas le rechargement de la page, mais laisse le signe "#" dans l'URL. Existe-t-il donc un moyen, dans les navigateurs les plus courants, de supprimer en JavaScript une ancre URL incluant le signe "#" sans déclencher un rafraîchissement de la page ?