使用JavaScript 輕鬆刪除URL 的哈希
問:我有一個類似http://example.com#something 的URL,並且我想刪除#something而不刷新頁面。使用“window.location.hash = ''”不起作用。
答:HTML5 History API 提供了一個優雅的解決方案。這裡有一個 JavaScript 函數可以解決這個問題:
function removeHash () { history.pushState("", document.title, window.location.pathname + window.location.search); }
這適用於 Chrome、Firefox、Safari、Opera,甚至 IE 10 等主流瀏覽器。
對於不支援的瀏覽器不支援歷史API:
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; } }
此解決方案可能不太相容,但它為不支援History API 的瀏覽器提供了優雅的降級。
以上是如何在 JavaScript 中輕鬆刪除 URL 的雜湊值而不需要重新載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!