使用JavaScript 在不刷新頁面的情況下從URL 中刪除雜湊
使用URL 時,通常需要刪除雜湊片段( #something )而不導致頁面刷新。這可以使用 HTML5 History API 來實現,該 API 允許操作位置欄。
一個解決方案是:
window.location.hash = '';
但是,這只會刪除雜湊的內容,留下 # URL 中的符號。
更全面的解決方案:
function removeHash() { history.pushState("", document.title, window.location.pathname + window.location.search); }
此方法適用於 Chrome, Firefox、Safari、Opera 和 IE 10。對於不支援的瀏覽器,可以使用優雅的降級腳本:
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; } }
透過利用此技術,您可以有效地從URL 中刪除哈希,而無需無論瀏覽器是否支持,都會導致頁面重新整理.
以上是如何使用 JavaScript 刪除 URL 哈希而不刷新頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!