2012-03-22 4 views
0

짧은 질문 : 특정 페이지에 그것을 만들려고Jquery Address Plugin : 기록 변경을 피하는 법?

다시 버튼 페이지 URL (역사를) 변경되지 않습니다 (탭을 사용합니다). 그것은, 사용자가 뒤로 버튼 탭을 변경하면 표시되지만 URL이 표시되지 않습니다. 주소 플러그인으로 어떻게 할 수 있습니까?

긴 질문 : 위의 설명에 추가

, 나는이 같은 주소 플러그인을 사용하고 말해야한다 :이 changePageFunction 내부

$.address.strict(false); 
$.address.externalChange(function(e) { 
    changePageFunction(e.value); 
}); 

()를 나 ' m $.address.title(the_title);$.address.value(the_value);으로 설정하십시오. 내가 시도한 것은 이런 식으로 changePageFunction()에 직접 전화를 변경하는 것입니다 :

$.address.externalChange(function(e) { 
    if (!isTabsPage) { 
     changePageFunction(e.value); 
    } else { 
     changeTab(); 
    } 
}); 

이 작동하지만, 변경 표시 URL이 (다시 누르면 각각의 뒤로 버튼에 대해 하나 개의 위치를 ​​간다).

나는 할 수 없습니다 :

  • 이 다른 유사한
  • 변화 현재 페이징 시스템 (비트 복합)
  • 에 대한
  • 주소 변경 플러그인 ($의 .address 샘플처럼) 각 탭에 다른 URL을 추가

아이디어는이 isTabsPagechangeTab 다음에 해당하는 경우() 작동합니다 하시다입니다 rk가 아니라면 현재 방법이 작동합니다 ($ .address history managed)

기록을 고정하는 방법이 있습니까?

답변

0

HTML5에는이를 처리 할 원시 기록 개체가 있습니다. 사용자가 탭을 변경하고 사용자가 앞으로/뒤로 탐색 할 때 popState 이벤트를 처리 할 때 pushState 함수를 사용해야합니다. @balupton에 의해 구식 브라우저를위한 멋진 폴리필이 있습니다 here.

0

브라우저의 뒤로 버튼을 제어 할 수 없습니다. 해시를 처음 설정하면 브라우저는 항상 뒤로 버튼을 사용하여 해시를 변경할 수 있습니다. 유일한 옵션은 해시를 잡고 수동으로 바꾸는 것입니다. 루프를 사용하여 뒤로 버튼 기능을 깨뜨리는 것입니다.

이것은 jQuery와는 아무런 관련이 없습니다. 모든 jQuery는 location.hash 속성을 조작합니다.

http://www.ezineasp.net/post/Javascript-Location-Hash-with-Example.aspx

은 왜 이렇게할까요? 응용 프로그램 상태가 해시에 반영되어야합니다.