URL의 해시 값을 제어하기 위해서 아래와 같이 location.hash
를 사용합니다.
location.hash = "string"; |
그런데 모바일 브라우저에서 location.hash
가 변경되면 다음 이미지처럼 주소표시줄이 화면에 나타납니다.
이를 피하려면 HTML5의 history.pushState()
함수를 이용하면 됩니다.
history.pushState(null, null, "#string"); |
단, history.pushState()
사용할 때 주의할 점은, location.hash
와는 달리, 실행 시에 Window.onhashchange
이벤트가 발생하지 않는다는 것입니다.
location.hash = "string";//trigger onhashchange event history.pushState(null, null, "#string");//DON'T trigger onhashchange event |
참고 링크
Location hash Property
Manipulating the browser history
Window.onhashchange