2012-03-10 3 views
0

나는 역사 및/또는 해시에 관한 좋은 (그리고 완전한) 기사를 찾고 있지만 아무 소용이 없으려고 노력하고있다. 제가 발견 한 모든 것은 도서관에 관한 것이었지만 저는 아작스 역사를 저의 손으로 쓰고 싶습니다.자바 스크립트에서 아약스로 히스토리를 다루는 방법?

내가 아는 바에 따르면 역사 API를 사용할 것입니다 (# 기호가 없음). 방문 기록 API를 지원하지 않는 브라우저 사용자의 경우 <head> 스크립트에 배치됩니다.이 스크립트는 ex.com/adress1#/adress2에서 ex.com/adress2로 리디렉션됩니다 (F5 용).

도와 주시겠습니까?

+0

지금까지이 질문을 게시 한 것 이외에 무엇을 시도 했습니까? 어떤 어려움을 겪었습니까? –

+0

https://github.com/balupton/History.js를 보셨습니까? 그것은 이전 브라우저에 대한 히스토리 api와 해시를 모두 지원합니다. – ThiefMaster

+0

라이브러리를 사용하고 싶지 않습니다! 읽어 봤니? "내가 발견 한 모든 것은 도서관에 관한 것이었지만, 나는 내 아작스 역사를 쓰고 싶다." –

답변

0

이 솔루션을 찾으십니까?

$(".link").click(function() { 
    window.location.hash = "param"; 
}); 
$(init); 

function init() { 
    ajax_page_handler(); 
    page_load($(window.location).attr("hash")); 
} 

function page_load($href) { 
    if ($href != undefined && $href.substring(0, 1) == '#') { 

     if ($href === "#param") { 
      // load the relevant data 
     } 

     $('html, body').animate({ 
      scrollTop: 0 
     }, 'slow'); // bonus 
    } 
} 

function ajax_page_handler() { 
    $(window).bind('hashchange', function() { 
     $href = $(window.location).attr("hash"); 
     page_load($href); 
    }); 
}​ 
+0

아니요. 라이브러리가없는 기본 솔루션을 원합니다. –

+0

이것은 기록 관리를위한 라이브러리가 아닙니다. 방금 jQuery를 사용했습니다. jQuery를 사용할 필요가없는 경우 순수한 JavaScript –

+0

으로 변환 할 수 있습니다. 내 손으로 작성하는 고유 솔루션을 검색했습니다.하지만 아무 소용이 없습니다. 이 기록의 출시에 대한 아이디어가 있습니다. # 1. 모든 링크에 onclick 이벤트를 바인딩하십시오 : 'Ajax link'. this - 'this.href'를 읽습니다. (하지만 ..'event.target || event.srcElement' .. dunno), event - 읽으려면 마우스 버튼을 클릭하십시오 (3이면 true를 반환합니다. 새 탭에서 열려면 1 - + false를 반환합니다. (간단한 링크로 이동하지 마십시오). # 2. 작성했습니다 : ''스크립트의 위치로 리디렉션됩니다./ –

0

구형 브라우저의 경우이 라이브러리를 사용할 수 있습니다. https://github.com/devote/HTML5-History-API 구형 브라우저의 히스토리를 완전히 에뮬레이션합니다. 추가/불필요한 코드를 작성할 필요가 없습니다.

관련 문제