La résolution de ce problème est beaucoup plus accessible de nos jours. Le HTML5 Histoire de l'API nous permet de manipuler la barre de navigation pour afficher les URL dans le domaine actuel.
function removeHash () {
history.pushState("", document.title, window.location.pathname
+ window.location.search);
}
Travail de démonstration: http://jsfiddle.net/AndyE/ycmPt/show/
Cela fonctionne dans Chrome 9, Firefox 4, Safari 5, Opera 11.50 et dans IE 10. Pour les non prise en charge des navigateurs, vous pouvez toujours écrire un gracieusement dégradant script qui permet d'utiliser, le cas échéant:
function removeHash () {
var scrollV, scrollH, loc = window.location;
if ("pushState" in history)
history.pushState("", document.title, loc.pathname + loc.search);
else {
// Prevent scrolling by storing the page's current scroll offset
scrollV = document.body.scrollTop;
scrollH = document.body.scrollLeft;
loc.hash = "";
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scrollV;
document.body.scrollLeft = scrollH;
}
}
De sorte que vous pouvez vous débarrasser du symbole dièse, mais pas dans tous les navigateurs.
Remarque: si vous souhaitez remplacer la page actuelle dans l'historique du navigateur, utilisez replaceState()
au lieu de pushState()
.