Mám URL jako:http://example.com#something
, jak odstraním #something
, aniž by došlo k obnovení stránky?
Zkusil jsem následující řešení:
window.location.hash = '';
To však neodstraní symbol hash #
z adresy URL.
Odpověď
Úvodní otázka:
window.location.href.substr(0, window.location.href.indexOf('#'))
nebo
window.location.href.split('#')[0]
oba vrátí URL bez hash nebo čehokoli za ním.
Pokud jde o vaši úpravu:
Jakákoli změna na window.location
spustí aktualizaci stránky. Můžete změnit window.location.hash
aniž byste spustili aktualizaci (ačkoli okno vyskočí, pokud váš hash odpovídá id na stránce), ale nemůžete se zbavit znaku hash. Vyberte si, co je horší…
NEJAKTUÁLNĚJŠÍ ODPOVĚĎ
Správná odpověď na to, jak to udělat bez obětování (buď úplného načtení nebo ponechání znaku hash tam), je zde. Tuto odpověď zde ponecháváme s ohledem na to, že byla původní v roce 2009, zatímco správná odpověď, která využívá nová rozhraní API prohlížeče, byla uvedena o 1,5 roku později.