2011-08-11 4 views
8
  1. 사용자가 페이지 A를 방문하고 몇 번 정도 클릭하고 페이지 상태를 조정합니다.
  2. 페이지 A가 결국 페이지
  3. 사용자가 클릭 브라우저 다시 B 버튼으로 사용자를 리디렉션,

내가브라우저 - 뒤로 버튼을 통해 사용자 도착 페이지를 처리하려면 어떻게해야합니까?

방법 3 단계에 대한 몇 가지 인터페이스 정리를 수행 할 필요가 브라우저에 다시 페이지 A 본다 페이지 A에서이 이벤트를 캡처합니까?

+2

다음은 jQuery와 뒤로 버튼을 사용하여 다루는 유사한 게시물입니다. http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button –

답변

1

쿠키를 설정하는 것 외에도 브라우저 보안 제한으로 인해 쿠키를 설정할 수 없습니다. 해결 방법은 사용자가 이전에로드 또는 화재로 페이지를 탐색하는지 확인하는 것입니다.

1

시나리오에서 URL 해시를 사용하여 페이지 B로 이동하고 AJAX 및 jQuery를 사용하여 새 페이지를로드 할 수 있습니까? 따라서 브라우저는 실제로 페이지를 떠나지 않습니다. 사용자가 뒤로 이동하면 URL 해시가 변경됩니다. 사용자가 페이지 A에 다시 탐색 경우 그런 다음 볼 수 hashchange 이벤트를 캡처 할 수 나는 자바 스크립트에 완전히 의존하지 않습니다이 작업을 수행하는 방법을 제시하는 몇 가지 가정을거야

+0

Connel, I like 아이디어,하지만 난 우리의 웹 애플 리케이션이 방법에 대한 무거운 무게의 너무 많이 될 것 같아요. 그것은 ASP.NET 웹 양식 DotNetNuke 내의 전자 상거래 응용 프로그램입니다 –

+0

아, 항상 제안의 가치[email protected]가 제안한 게시물에서 답변을 시도 했습니까? – Connell

+0

아직 분석 할 시간이 필요하지 않습니다. 그것은 유망 해 보인다. –

1

:

  1. 주석에 다른 답변은 ASP.NET 응용 프로그램이라고 언급했습니다. 나는 당신이 ASP.NET 응용 프로그램의 다른 페이지에서 눌려지고있는 뒤로 버튼에만 관심이 있다고 가정 할 것입니다.
  2. ASP.NET 코드 숨김에서 실행되는 서버 쪽 코드를 문제의 페이지와 "되돌릴"필요가있는 페이지 모두에 대해 제어합니다.

두 조건이 모두 해당되면 Session variable! 현재 페이지를 모든 관련 페이지에서 세션에 의해 유지되는 currPage 변수로 설정하면됩니다. 그런 다음 페이지가로드 될 때이를 확인하고이를 사용하여 페이지가 직접 표시되는 방식을 조정하거나 숨겨진 필드/입력/div에 값을 쓰십시오.이 값은 자바 스크립트가 읽고 적절하게 반응하는 데 사용할 수 있습니다.

JS 읽기 및 실행 경로로 이동하면로드 후 뒤로 버튼을 누른 후 모든 브라우저에서 이벤트가 올바르게 실행되는지 테스트해야합니다. the link from Rionmonster에서 언급했듯이 때로는 뒤로 버튼 후에 onload 이벤트가 실행되지 않을 수도 있습니다. 이 문제가 발생하면 여기에 언급 된 기법을 사용하여 문제를 해결하십시오.

이 솔루션 유형은 세션 변수와 상호 작용할 수있는 서버 측 코드를 사용하는 모든 웹 응용 프로그램 (예 : PHP, Python 및 기타 여러 제품에서 작동 할 수 있음)에서 작동해야합니다.

참고 : 소리가 나는 것처럼 우아하지 않을 가능성이 있습니다. 많은 경우 브라우저는 뒤로 버튼을 누른 후 실제로 서버에서 새로운 페이지를 가져올 수 없습니다. 테스트 결과 이것이 문제인 것으로 밝혀지면 뒤로 버튼을 누른 후에 JS에 새로운 정보를 채우기 위해 일부 AJAX 기술을 사용해야 할 수도 있습니다.

관련 문제