Heim >Web-Frontend >js-Tutorial >Wie kann ich einen URL-Hash entfernen, ohne die Seite mithilfe von JavaScript zu aktualisieren?
Hash von URL ohne Seitenaktualisierung mit JavaScript entfernen
Bei der Arbeit mit URLs ist es oft wünschenswert, das Hash-Fragment (#something) zu entfernen ), ohne dass die Seite aktualisiert wird. Dies kann mithilfe der HTML5-Verlaufs-API erreicht werden, die eine Manipulation der Standortleiste ermöglicht.
Eine Lösung ist:
window.location.hash = '';
Dadurch wird jedoch nur der Inhalt des Hashs entfernt, während das # übrig bleibt. Symbol in der URL.
Für eine umfassendere Lösung:
function removeHash() { history.pushState("", document.title, window.location.pathname + window.location.search); }
Diese Methode funktioniert in Chrome, Firefox, Safari, Opera und IE 10. Für Browser, die dies nicht unterstützen, kann ein elegantes Degradationsskript verwendet werden:
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 current scroll offset scrollV = document.body.scrollTop; scrollH = document.body.scrollLeft; loc.hash = ""; // Restore scroll offset to avoid flickering document.body.scrollTop = scrollV; document.body.scrollLeft = scrollH; } }
Mit dieser Technik können Sie den Hash effektiv aus einer URL entfernen, ohne dass die Seite beschädigt wird aktualisieren, unabhängig von der Browserunterstützung.
Das obige ist der detaillierte Inhalt vonWie kann ich einen URL-Hash entfernen, ohne die Seite mithilfe von JavaScript zu aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!