나는 hashchange 이벤트 플러그인을 사용하여 기본 페이지를 만들었습니다. 하지만 지금은 더 큰 것을 만들고 싶지만 쉽게 할 수있는 올바른 방법을 찾을 수 없습니다.hashchange-event-plugin을 사용한 탐색 - 일부 질문
index.html은 애니메이션 로그인 상자로 시작합니다. 귀하의 계정에 로그인하면 로그인 상자가 사라지고 해시가 #start로 바뀝니다. content + header/footer가로드되고 페이드 인합니다.이 부분은 현재 문제가 아닙니다.
주된 이유는 index.html을 벗어나지 않고 브라우저의 뒤로 버튼을 활성화하는 것입니다. 나는 이것을 보관하기 위해 아약스와 해시를 사용한다. #start는 로그인 한 후 기본 인터페이스를로드합니다. #messages는 messages-interface를로드합니다. 둘 다 해시가 변경 될 때마다 트리거되어야하는 몇 가지 추가 스크립트 + 애니메이션이 있습니다.
일반적으로 제 문제는 서브 링크를 얻는 방법을 모른다는 것입니다. 예를 들어 사용자가 #messages에 있습니다 (Ajax는 /php/messages.php를로드하고 사라집니다). 메시지 인터페이스는 그의받은 편지함에 맨 아래 링크를 표시하여 보낼 편지함으로 이동합니다. 링크에는 어떤 옵션이 있습니까? messages.php는 새 메시지에 대해? s = n, 보낼 편지함에 대해? s = o와 같은 GET 요청을 기다립니다. 이 작업을 어떻게 수행 할 수 있습니까? 브라우저의 뒤로 버튼을 활성화 하시겠습니까?
해시를 # messages/outbox +로 변경하는 것과 같은 방법이 /php/messages.php?s=o 파일을로드 중입니까? jquery 코드는 어떻게 생겼을 까? 메인 네비게이션을 위해 나는 스위치 - 함수 (switch (hash) {case #start; case #messages} '; 이것은 더 많은 링크/해시를 많이 얻으므로 최상의 해결책이 될 수 없습니다.
제안/해결책?
감사합니다. 바베큐 플러그인이 내 질문을 해결하는 것 같습니다! 그냥 확실하게 : 그래서 # 메시지 & S는 = O를 & foo는 = 막대와 같은 링크를 얻을 수 있습니다 : # 메시지를 처음에 열 다음 params를 실행합니까? – MukMuk
@MukMuk 얼마나 많은 주를 밀어야하는지에 달려 있습니다. #messages를 푸시 한 다음 모든 매개 변수를 푸시했다면 2 개의 상태가되며 첫 번째 상태로 돌아가려면 뒤로 버튼을 두 번 눌러야합니다. [jQuery.bbq.pushState] (http://benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html#jQuery.bbq.pushState)를 사용할 수 있습니다. " 'state'를 현재 위치의 브라우저 기록에 추가하고 location.hash를 설정하고 바운드 된 hashchange 이벤트 콜백을 트리거합니다 (새 상태가 이전 상태와 다른 경우). –