Die Lösung dieses Problems ist heutzutage viel greifbarer. Mit der HTML5-Verlaufs-API können wir die Standortleiste so bearbeiten, dass jede URL in der aktuellen Domäne angezeigt wird.
function removeHash () {
history.pushState("", document.title, window.location.pathname
+ window.location.search);
}
Arbeitsdemo: http://jsfiddle.net/AndyE/ycmPt/show/
Dies funktioniert in Chrome 9, Firefox 4, Safari 5, Opera 11.50 und in IE 10. Für nicht unterstützte Browser können Sie jederzeit ein ordnungsgemäß herabwürdigendes Skript schreiben, das es verwendet, sofern verfügbar:
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;
}
}
So können Sie das Hash-Symbol entfernen, nur noch nicht in allen Browsern.
Hinweis: Wenn Sie die aktuelle Seite im Browserverlauf ersetzen möchten, verwenden Sie replaceState()
anstelle von pushState()
.