javascript로 그린 게시판을 예로 들면, 페이지 번호로 url을 찾기가 어렵다거나 하는 문제가 생기죠.
그래서 hash를 많이 사용하고,
hashchange 이벤트도 유용하게 사용됩니다.
하지만 문제는 any브라우징입니다.
MS에서 친히 만드신 IE7 이하 버전에서는 hashchange 이벤트가 잡히지 않기 때문입니다.
(혹시 제가 잘못 알고 있다면, 댓글로 알려주시면 감사..^^;;)
그리하여, setInterval 을 사용하여, 주기적으로 hash값을 체크하는 방법으로 처리해 버렸습니다.
무한루프 같은 느낌이어서, 좀 마음에 걸리기는 하지만, (0.5초 간격으로 체크시에) 실제로 사용하는 cpu사용량에는 별 문제가 없기에 다음과 같이 처리 했습니다.
더 좋은 방법이 있으신 분은 트랙백으로 공유 부탁드리겠습니다.
코드는 아래와 같습니다.
if (window.addEventListener ) {
window.addEventListener('hashchange', function() {
해쉬 이벤트 발생시 처리할 함수();
},false);
} else if (window.attachEvent) {
this.beforeHash = location.hash;
// 0.5초 간격으로 hash값 체크
setInterval(function() {
if (beforeHash==location.hash) return;
해쉬이벤트시 처리할 함수();
beforeHash = location.hash; // beforeHash는 전역변수..
},500);
}
}
'컴퓨터 이야기' 카테고리의 다른 글
CHROME FRAME에 대한 분석 (0) | 2012.06.15 |
---|---|
IE6/IE7/IE8 등의 호환을 유지한채 HTML5 사용. (4) | 2012.06.15 |
json2.js와 daum 에디터의 충돌 (0) | 2011.07.06 |
사파리 브라우저 AJAX 관련 버그 (5) | 2011.04.18 |
2013년 디지털 교과서 10만원 수준에 공급.!! (1) | 2007.03.12 |