2012-02-27 5 views
1

나는 소셜 네트워킹 웹 사이트를 개발 중이며 최대한 동적 인 웹 사이트로 만들 계획입니다. 지금까지 살펴본 유일한 주요한 문제점은 jQuery의로드 기능을 사용할 때 브라우저의 뒤로 버튼을 사용할 수 없다는 점입니다. 자바 스크립트 기능을 사용하면jQuery의로드 기능으로 뒤로 버튼이 허용되지 않습니까?

은 실제로 사용자의 URL을 변경하려면 다음 코드를 추가 한 :

var stateObj = { foo: page }; 
history.pushState(stateObj, page, page); 

나는 내가 그것을가 원하는대로 작동하지만 것이다 가정 불행하게도 URL 변경하지만 내용 페이지의 내용은 그대로 유지됩니다.

방문한 마지막 페이지를로드하는 방법을 아는 사람이 있습니까? 동적이지 않고 정상적인 뒤로 버튼처럼 정상적으로 작동합니다.

실제로 임시 URL 방문 할 수 있습니다 무슨 일이 일어나고 있는지의 예를 따르세요
이메일 : [email protected]
암호를 로그인해야합니다 http://goo.gl/0BOUV
, 그래서 여기에 몇 가지 로그인 정보입니다 : password

+0

https://github.com/balupton/History.js/이 자바 스크립트 라이브러리로 좋은 행운을 얻었습니다. – Blender

답변

2

을 사용하여 표시된 URL을 변경하면 사용자가 "뒤로"를 누르면 브라우저에서 직접 URL을 다시로드하지 않습니다. 대신 onpopstate 이벤트를 트리거합니다. 자세한 내용은 the Mozilla docs을 참조하십시오. 상태 데이터를 기반으로 적절한 페이지를 다시로드하는 해당 이벤트에 대한 핸들러를 작성해야합니다.

덧붙여 말하면 pushState은 새로운 HTML5 기능이므로 모든 브라우저에서 사용할 수있는 것은 아닙니다. History.js 라이브러리 @Blender는 멋진 크로스 브라우저 호환성 레이어를 제공합니다. 라이브러리를 사용하더라도 사용자가 뒤로 버튼을 사용할 때 상태 변경 이벤트를 처리해야합니다.

관련 문제