이제 HTML5 history.pushState
가 브라우저 기록을 변경하기 위해 도입 했으므로 웹 사이트는 URL의 조각 식별자를 변경하는 대신 Ajax와 함께 이것을 사용하기 시작합니다.
안타깝게도이 전화를 더 이상 감지 할 수 없습니다 onhashchange
.
내 질문은 : 웹 사이트가 history.pushState
언제 사용되는지 감지하는 신뢰할 수있는 방법이 있습니까? 사양에는 발생한 이벤트에 대해 언급되어 있지 않습니다 (적어도 아무것도 찾을 수 없습니다).
파사드를 만들려고했는데 window.history
내 고유의 JavaScript 객체 로 바뀌 었지만 전혀 효과가 없었습니다.
추가 설명 : 이 변경 사항을 감지하고 그에 따라 행동 해야하는 Firefox 추가 기능을 개발 중입니다.
며칠 전에 일부 DOM 이벤트를 듣는 것이 효과적 일지에 대한 비슷한 질문이 있었지만 이러한 이벤트가 여러 가지 이유로 생성 될 수 있기 때문에 그에 의존하지 않을 것입니다.
최신 정보:
다음은 호출 onpopstate
될 때 트리거되지 않는 것을 보여주는 jsfiddle (Firefox 4 또는 Chrome 8 사용)입니다 pushState
(또는 내가 잘못하고 있습니까? 자유롭게 개선하십시오!).
업데이트 2 :
또 다른 (측면) 문제는 window.location
사용할 때 업데이트되지 않는다는 것 입니다 pushState
(그러나 이미 여기에 대해 읽었습니다).
history
개체 를 교체했다고 말했다 . 이 경우에는 불필요 할 수 있습니다.