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

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

Susan Sarandon
풀어 주다: 2024-11-29 10:57:10
원래의
841명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿