Heim >Web-Frontend >js-Tutorial >Wie entferne ich mühelos den Hash einer URL in JavaScript, ohne sie neu zu laden?

Wie entferne ich mühelos den Hash einer URL in JavaScript, ohne sie neu zu laden?

Barbara Streisand
Barbara StreisandOriginal
2024-11-30 04:11:10417Durchsuche

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

Müheloses Entfernen des URL-Hash mit JavaScript

F: Ich habe eine URL wie http://example.com#something und Ich möchte #etwas entfernen, ohne die Seite zu aktualisieren. Die Verwendung von „window.location.hash = ''“ hat nicht funktioniert.

A: Die HTML5 History API bietet eine elegante Lösung. Hier ist eine JavaScript-Funktion, die den Zweck erfüllt:

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

Dies funktioniert in gängigen Browsern wie Chrome, Firefox, Safari, Opera und sogar IE 10.

Für Browser, die dies nicht tun Unterstützt die History-API nicht:

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;
    }
}

Diese Lösung ist möglicherweise nicht universell kompatibel, bietet aber eine ordnungsgemäße Verschlechterung Browser, die die History-API nicht unterstützen.

Das obige ist der detaillierte Inhalt vonWie entferne ich mühelos den Hash einer URL in JavaScript, ohne sie neu zu laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn