2012-06-25 3 views
0

기사에있는 각 AJAX가 ID를 기반으로하는 링크가 가득한 페이지가 있습니다. history.pushstate를 사용하여 기사를 "방문한"것으로 표시하려고합니다.Ajax 링크를 "방문한"으로 표시하는 방법 IE9

은 내가했던 무엇 :

if (window.history && window.history.pushState) 
{ 
    window.history.pushState({articleID:"123"}, "Title", "#ID=123"); 
} 
: 내가 좋아하는 뭔가를 내 JS 함수 내부

<a href="#ID=123" onclick="ajaxLoad('123')">Title</a> 

:

나는 기사의 ID와 각 링크에 해시를 추가

내 href의 값은 어쨌든 사용되지 않습니다. 링크를 "방문한"CSS로 가져올 수 있도록 배치했습니다. 물론 IE9를 제외한 대부분의 브라우저에서 잘 작동합니다. IE9는 window.history를 지원하지 않기 때문에 작동하지 않을 것입니다.

그러나 내 문제는 IE에서 기사를 클릭하면 URL이 바뀌어 해시가 기록되고 이로 인해 기록이 다시 오염된다는 것입니다. 이제는 다시 되돌아 가야합니다.

나는 해시를 없애고 여전히 버튼 작업 (IE 외부)을 사용할 수 있음을 알고 있지만 사실 내 링크가 "방문한"것으로 표시되도록하는 데 더 관심이 있습니다. IE9 동작이 손상되지 않고 "방문한"것으로 표시된 ajaxy 링크를 얻으려면 어떻게해야합니까?

+0

이 pushState를 지원하지 않는 역사 지원을 추가 라이브러리를 사용합니다. – epascarello

답변

3

시도 :

if (event.preventDefault) event.preventDefault(); else event.returnValue = false; 
+0

감사합니다. Neil! 나는 event.returnValue에 관해 몰랐다. 그러나 그것은 트릭을했다! – Porco

0

onclick 처리기의 return false; 당신의 onclick 핸들러이 추가

+0

가 작동하지 않습니다. IE는 여전히 해시로 URL을 업데이트하고 뒤로 버튼을 사용할 때 계속 순환합니다. – Porco

관련 문제