2012-02-15 4 views
0

datatables JQuery 플러그인을 사용하고 있습니다. 나는 AJAX와 페이지 매김 (서버 측)과 함께 사용한다. 각 행에는 해당 레코드의 상세보기에 대한 링크가 있습니다. 해당 링크를 클릭하고 뒤로 버튼을 누르면 이전 페이지로 돌아가고 싶습니다. (참고 : datatables 자신의 상태 저장은 사용할 수 없습니다).Javascript는 URL 매개 변수를 기록하기 전에 변경합니다.

URL 매개 변수를 히스토리에 추가하기 전에 현재 URL에 URL 매개 변수를 추가 할 수 있으면이 작업을 수행 할 수 있습니다.

이 작업을 수행 할 수 있습니까? 순수 JS 또는 JQuery는 별 문제가되지 않습니다.

(참고 : 당신이 내 문제에 적용 할 수있는 예를 제공하십시오 것이 좋습니다 그래서 만약 내가이의 #을 사용하는 방법에 대한 읽을하지만 결코 일을했다, 이런 종류의 물건을 아주 새로운 해요)

편집 : jQuery 플러그인 바베큐 (http://benalman.com/projects/jquery-bbq-plugin/)에 대한

아주 기본적인 가이드 URL을 가정

는 # A의 해시를 가지고 = 2 & B = 시험, 당신 다음과 같이 값을 얻을 수 있습니다.

//true = optional converts 2 to an integer, false to boolean,... 
var a = $.bbq.getState('a',true); 

당신은/변경하여 값을 추가 할 수 있습니다 바인드되는 경우

var hash = "a=3&b=hello"; 
$.bbq.pushState(hash); 

pushState 화재의 hashchange 이벤트. 이벤트를 결합하지만 doucment.ready 기능에 다음과 같은하려면 : HTML5 History API 당신이 그냥 할 수 있습니다

// called when # part of URL is modified 
$(window).bind('hashchange', function(event) { 
    var hash = event.fragment; // full hash as string 
    var a = event.getState('a', true); // value for a 
    // here do meaningful action like an AJAX request using the hash parameters  
}); 

답변

5

예. MDN에서 Manipulating the Browser History 문서를 확인하십시오.

var newURL = location.href + (location.search ? "&" : "?") + "myParameter=myValue"; 
history.replaceState({}, '', newURL); 

역사 API는 HTML5 기능 및 불행히도 not supported on all browsers입니다 : 여기

는 현재 URL에 매개 변수를 추가하고 현재 기록 항목을 대체하는 예입니다. 그러나 history.js이라는 폴리 폴리가 있으며 모든 브라우저에 지원을 제공한다고합니다.

UPDATE :

대신에 당신은 아마 기존 솔루션과의 jQuery 플러그인을보고 싶은 자신의 AJAX 역사 구현을 압연. 예를 들어보세요. What is the best back button jQuery plugin? 질문에 대한 답변

+0

내 투표가 있습니다. – daniyel

+0

thx. 나는 HTML5 히스토리 API에 대해 막연하게 들었지만, 슬프게도 애플리케이션은 IE 8에서 실행되어야하고 IE 8은 지원되지 않습니다. http://benalman.com/projects/jquery-bbq-plugin/에 링크되어 있습니다 (더하기 인터넷 검색 결과). –