首頁 >web前端 >js教程 >如何使用 JavaScript 刪除 URL 哈希而不刷新頁面?

如何使用 JavaScript 刪除 URL 哈希而不刷新頁面?

Patricia Arquette
Patricia Arquette原創
2024-11-30 10:53:10929瀏覽

How Can I Remove a URL Hash Without Refreshing the Page Using JavaScript?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn