2011-08-25 2 views
7

내 웹 사이트는 http://visualise.ca/이며, 미리보기 이미지를 클릭하여 게시물을로드하면 ajax를 사용하여 페이지 내의 게시물을로드합니다.Window.location.hash 구문과 함께 도움이 필요합니다.

$("#close").live("click", function(event) { 
    $("#board").fadeOut("slow"); 
    $("#board-wrapper").slideUp("slow"); 
    $("html,body").delay(1000).animate({scrollTop: 0}, 300); 
    window.location.hash = ""; 
    window.history.pushState(null,null,site_url+"/"); 
    return false; 
}); 

을하지만 IE8에 다시 http://visualise.ca/# 대신 http://visualise.ca/로 다시 변경 : 당신이 게시물을 닫을 때이 페이지를 다시로드하지 않고 다시 http://visualise.ca/에 URL을 변경하기 위해이 코드를 사용합니다. 이 문제를 해결하고 http://visualise.ca/으로 변경해야합니까?

+2

IE8은 html5 기록 API를 지원하지 않습니다. https://github.com/balupton/history.js와 같은 대체 메시지 사용을 고려하십시오. – anderssonola

답변

1

요즘 나는 많은 아약스 역사를하고 있습니다. 페이지와 모달을 뒤지고 네 번째로 탐색하는 내 구현을 시도하고 있습니다. 아주 좋은 진전을 이루었습니다.

테스트가 시작된 이래로 저는 루트 해시를 발견했습니다. 한 번 처음 페이지 (모든 것이 시작된 곳)로 다시 변경되면 BROWSER BACK 버튼을 클릭 한 경우에만 해시 (#)가 손실됩니다. 해시를 다시 ''로 변경하면 끝에 # /가 항상 표시됩니다.

IE8에 관한 한 모든 해결책이 있지만 IE8/iframe 해킹을 테스트하지 않았기 때문에 iFrame 해킹을 사용하고 있다고 생각하지 않습니다.

내 솔루션의 경우 해시와 순수한 명령 컨트롤을 혼합하여 사용하고 있습니다. 나는 2 주 안에 충분히 테스트 된 최종 버전을 가져야한다 (희망찬 생각).

게다가, URL 끝에 해시/샤프가 남았을 때 누가 신경 쓰는지. 일단 웹 사이트를 방문하면 절대 URL을 보지 않습니다. 나는 그 페이지의 내용을보고있다. 정말로 : URL을 복사하여 붙여 넣을 때 URL 만 중요하다는 사실을 알게되었습니다. 그것 이외에, 나는 그것을 결코 보지 않는다.

0
window.location = window.location.href.replace(/#.*/, ""); 

이것은 IE에서 작동합니다.

+1

그러면 페이지가 다시로드됩니다. 그렇게해서는 안됩니다. ;-) – Gab

0
$('#close').click(function(){ 

window.location = "http://visualise.ca/"; 

}); 
+1

이렇게하면 페이지가 다시로드됩니다. 좋지 않다 ;-) – Gab

3

아니겠습니까?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
<script> 
    $(document).ready(function() {  
    $(".testPhoto").click(function(event){ 
     event.stopPropagation(); 
     alert("do something"); 
     return false; 
    }); 
}); 
</script> 
<a class="testPhoto" href="#testPhoto" onclick="testPhoto">Test Photo</a> 
1

IE9는 끝 부분 해시없이 페이지를 다시로드합니다. #. 내 제안은 IE를 확인하고 콘텐츠를 제거하거나 비 웁니다. 정확한 방법을 원한다면 일부 IE 버추얼을 피하십시오.

if (jQuery.browser.msie && (parseInt(jQuery.browser.version) < 9)) { 
    window.location = 'http://visualise.ca"; 
    document.execCommand('stop'); 
} 
관련 문제