Home > Web Front-end > JS Tutorial > How to Effortlessly Remove a URL\'s Hash in JavaScript Without Reloading?

How to Effortlessly Remove a URL\'s Hash in JavaScript Without Reloading?

Barbara Streisand
Release: 2024-11-30 04:11:10
Original
414 people have browsed it

How to Effortlessly Remove a URL's Hash in JavaScript Without Reloading?

Effortless Removal of URLs' Hash with JavaScript

Q: I have a URL like http://example.com#something, and I want to remove #something without refreshing the page. Using "window.location.hash = ''" didn't work.

A: The HTML5 History API provides an elegant solution. Here's a JavaScript function that does the trick:

function removeHash () {
    history.pushState("", document.title, window.location.pathname
                                                       + window.location.search);
}
Copy after login

This works in major browsers like Chrome, Firefox, Safari, Opera, and even IE 10.

For browsers that don't support the History 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;
    }
}
Copy after login

This solution may not be universally compatible, but it provides graceful degradation for browsers that don't support the History API.

The above is the detailed content of How to Effortlessly Remove a URL\'s Hash in JavaScript Without Reloading?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template