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

페이지를 다시 로드하지 않고 JavaScript를 사용하여 URL에서 해시 기호를 제거하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-29 10:57:10866검색

How Can I Remove the Hash Symbol from a URL Using JavaScript Without Reloading the Page?

JavaScript를 사용하여 URL에서 해시 기호 제거

페이지를 새로 고치지 않고 URL에서 해시 기호(#)를 제거하려면 약간의 기교가 필요합니다. 단순히 window.location.hash를 빈 값으로 설정하는 것보다 string.

최신 브라우저를 위한 우아한 솔루션

최신 HTML5 History API는 다음과 같은 우아한 솔루션을 제공합니다.

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

예 데모:

https://jsfiddle.net/AndyE/ycmPt/

더 넓은 브라우저 지원

History API 지원이 부족한 브라우저의 경우 , 이것이 우아하게 굴욕적이라고 생각하십시오 script:

function removeHash() {
  var scrollV = document.body.scrollTop;
  var scrollH = document.body.scrollLeft;
  var loc = window.location;

  if ("pushState" in history) {
    history.pushState("", document.title, loc.pathname + loc.search);
  } else {
    loc.hash = "";
    document.body.scrollTop = scrollV;
    document.body.scrollLeft = scrollH;
  }
}

주의 사항

이 솔루션은 해시 기호를 제거할 수 있지만 모든 브라우저, 특히 이전 버전에서는 작동하지 않을 수 있다는 점에 유의할 가치가 있습니다.

추가 참고:

브라우저 기록에서 현재 페이지를 바꾸려면 pushState() 대신 replacementState()를 사용하세요.

위 내용은 페이지를 다시 로드하지 않고 JavaScript를 사용하여 URL에서 해시 기호를 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.