使用JavaScript 從URL 中刪除井號
在不刷新頁面的情況下從URL 中刪除井號(#) 需要更多技巧而不是簡單地將window.location.hash設定為空string.
現代瀏覽器的優雅解決方案
現代 HTML5 History API提供了一個優雅的解決方案:
function removeHash() { history.pushState("", document.title, window.location.pathname + window.location.search); }
範例示範:
https://jsfiddle.net/AndyE/ycmPt/
更廣泛的瀏覽器支援
適用於缺乏History API支援的瀏覽器,認為這是有辱人格的script:
function removeHash() { var scrollV = document.body.scrollTop; var scrollH = document.body.scrollLeft; var loc = window.location; if ("pushState" in history) { history.pushState("", document.title, loc.pathname + loc.search); } else { loc.hash = ""; document.body.scrollTop = scrollV; document.body.scrollLeft = scrollH; } }
警告
雖然此解決方案可以刪除哈希符號,但值得注意的是,它可能不適用於所有瀏覽器,尤其是舊版本。
額外注意:
要替換瀏覽器歷史記錄中的當前頁面,請使用replaceState() 而不是pushState()。
以上是如何使用 JavaScript 從 URL 中刪除哈希符號而不重新載入頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!