JavaScript를 사용하여 손쉽게 URL 해시 제거
Q: http://example.com#something과 같은 URL이 있는데, 페이지를 새로 고치지 않고 #something을 제거하고 싶습니다. "window.location.hash = ''" 사용이 작동하지 않았습니다.
A: HTML5 History API는 우아한 솔루션을 제공합니다. 다음은 트릭을 수행하는 JavaScript 함수입니다.
function removeHash () { history.pushState("", document.title, window.location.pathname + window.location.search); }
이 기능은 Chrome, Firefox, Safari, Opera, IE 10과 같은 주요 브라우저에서 작동합니다.
이 기능을 사용하지 않는 브라우저의 경우 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; } }
이 솔루션은 보편적으로 호환되지 않을 수 있지만 History API를 지원하지 않는 브라우저에 대한 점진적인 성능 저하를 제공합니다.
위 내용은 다시 로드하지 않고 JavaScript에서 URL의 해시를 쉽게 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!