Müheloses Entfernen des URL-Hash mit JavaScript
F: Ich habe eine URL wie http://example.com#something und Ich möchte #etwas entfernen, ohne die Seite zu aktualisieren. Die Verwendung von „window.location.hash = ''“ hat nicht funktioniert.
A: Die HTML5 History API bietet eine elegante Lösung. Hier ist eine JavaScript-Funktion, die den Zweck erfüllt:
function removeHash () { history.pushState("", document.title, window.location.pathname + window.location.search); }
Dies funktioniert in gängigen Browsern wie Chrome, Firefox, Safari, Opera und sogar IE 10.
Für Browser, die dies nicht tun Unterstützt die History-API nicht:
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 current scroll offset scrollV = document.body.scrollTop; scrollH = document.body.scrollLeft; loc.hash = ""; // Restore the scroll offset to prevent flickering document.body.scrollTop = scrollV; document.body.scrollLeft = scrollH; } }
Diese Lösung ist möglicherweise nicht universell kompatibel, bietet aber eine ordnungsgemäße Verschlechterung Browser, die die History-API nicht unterstützen.
Das obige ist der detaillierte Inhalt vonWie entferne ich mühelos den Hash einer URL in JavaScript, ohne sie neu zu laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!