2011-09-02 3 views
3

나는 pushState() 메서드와 onpopstate() 처리기로 ajax 탐색을 사용하는 site을가집니다.window.onPopState() 이벤트 핸들러는 탐색 방향을 알고 있습니까? (앞으로, 뒤로)

처음 메인 페이지를 방문하면 기본 콘텐츠 (아약스 없음)가 표시됩니다.

누군가가 기본 페이지에서 벗어난 후 "뒤로"이동하면 기본 페이지로 돌아갈 때 null 상태가 제공됩니다. 따라서 핸들러는 초기 내용을 다시 가져 오기 위해 쉽게 아약스를 사용할 수 있지만 첫 번째 페이지 대신 두 번째 페이지에 머물러 있습니다.

이 문제를 해결할 수있는 유일한 방법은 초기 콘텐츠로드에 대한 정보가 포함 된 초기 페이지로드시 pushState를 수행하는 것이 었습니다. 이 방법을 사용하면 "뒤로"버튼이 효과적입니다!

누군가가 www.stackoverflow.com에 있었는데 my site으로가는 경우 stackoverflow로 이동 한 다음 다시 내 사이트로 "전달"하지만 초기 콘텐츠는 표시되지만 다시로드됩니다. "상태가 null이 아닙니다.

그래서 onPopState() 핸들러에서 사용자가 뒤로 또는 앞으로 가고 있는지 여부를 알 수 있습니까?

+0

대답은 예입니다. 그것은 지금 아주 명백하게 보인다. http://stackoverflow.com/questions/5257819/onpopstate-handler-ajax-back-button – KyleP

답변

0

Firefox에서 pageshow 이벤트를 사용하여 몇 가지 성공을 거두어 앞으로 및 뒤로 버튼을 통해 해당 초기 항목을 사이트에 잡았습니다.

0

can window.onPopState() 이벤트 핸들러가 탐색 방향을 알고 있습니까? (앞으로, 뒤로)

문제가 있습니다. 상태를 건너 뛸 수 있습니다 (뒤로 버튼을 누르고 원하는 상태를 선택하십시오). 이것은 그것을 매우 어렵게 만든다.

누군가가 기본 페이지에서 벗어난 후 "뒤로"이동하면 기본 페이지로 돌아갈 때 null 상태가 제공됩니다. 따라서 핸들러는 초기 내용을 다시 가져 오기 위해 쉽게 아약스를 사용할 수 있지만 첫 번째 페이지 대신 두 번째 페이지에 머물러 있습니다.

History.js으로 수정할 수 있습니다 (선택 사항 인 데이터 지속성 포함).

관련 문제