>웹 프론트엔드 >JS 튜토리얼 >JavaScript를 사용하여 페이지를 새로 고치지 않고 URL 해시를 제거하려면 어떻게 해야 합니까?

JavaScript를 사용하여 페이지를 새로 고치지 않고 URL 해시를 제거하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-30 10:53:10866검색

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

JavaScript를 사용하여 페이지 새로 고침 없이 URL에서 해시 제거

URL 작업 시 해시 조각(#something)을 제거하는 것이 바람직한 경우가 많습니다(#something ) 페이지를 새로 고치지 않고. 이는 위치 표시줄을 조작할 수 있는 HTML5 History 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으로 문의하세요.