JavaScript를 사용하여 페이지 새로 고침 없이 URL에서 해시 제거
"http://example.com#something"과 같은 URL을 발견하는 경우 끝에 해시 구성요소(#)가 있으면 페이지를 새로 고치지 않고 이를 제거하는 것이 어려울 수 있습니다. "window.location.hash"를 빈 문자열로 설정하는 기존 방법은 해시 기호 자체를 제거하는 데 실패합니다.
해결책: HTML5 History API
최신 브라우저는 다음을 제공합니다. HTML5 History API를 통한 솔루션입니다. "history.pushState()" 기능을 활용하면 페이지 새로 고침을 실행하지 않고도 새 URL을 표시하도록 위치 표시줄을 수정할 수 있습니다.
function removeHash() { history.pushState("", document.title, window.location.pathname + window.location.search); }
이 방법은 현재 및 Chrome, Firefox, Safari, Opera 및 Internet Explorer 10 이상을 포함한 호환 브라우저.
지원되지 않는 경우 우아한 성능 저하 브라우저
History API를 지원하지 않는 브라우저의 경우 우아한 성능 저하 스크립트를 사용할 수 있습니다.
function removeHash() { var scrollV, scrollH, loc = window.location; if ("pushState" in history) history.pushState("", document.title, loc.pathname + loc.search); else { // Preserve current scroll position scrollV = document.body.scrollTop; scrollH = document.body.scrollLeft; loc.hash = ""; // Restore scroll position document.body.scrollTop = scrollV; document.body.scrollLeft = scrollH; } }
이 접근 방식은 다양한 브라우저 간의 호환성을 보장하며 원인 페이지
참고:
위 내용은 JavaScript를 사용하여 페이지를 새로 고치지 않고 URL 해시를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!