2011-01-21 3 views
4

어떻게하면 window.location.hash onchange를 감지 할 수 있습니까? 예를 들면 다음과 같습니다.창 해시의 변경을 감지하는 방법?

if(window.location.hash.hasChanged()) 
{ 
    // ajax stuff 
} 
else 
{ 
    // nothing, no hash has been changed (without any window reload) 
} 

을 편집 한 후 Enter 키를 눌러 해시를 편집하고 변경합니다. 아무 것도 발생하지 않고 창 재로드에서만 해시의 변경을 감지합니다.

답변

2

Ben Alman의 hashchange jQuery plugin은 변경 사항에 대한 해시를 모니터링하는 기능을 제공합니다.

11

가장 최근의 브라우저 (FF3.6 +, IE8, Chrome)는 창 개체에 대한 "hashchange"이벤트를 지원합니다. 사용 예는 MDC: window.onhashchange을 참조하십시오. 당신은 오래된 브라우저를 지원하는 구현을 원하는 경우

window.onhashchange = function() { 
    // do something awesome here 
}; 

상황이 매우 빠르게 복잡, 나는 다른 사람의 라이브러리 또는 플러그인을 사용하는 것이 좋습니다 - 몇 가지 제안에 대한 답변 to this question 참조 : 간단한 비동기 듣기처럼 보일 수 있습니다.