2011-03-21 4 views
6

의심 할 여지없이 인터넷에 어딘가에 있으며 Google에서 색인을 생성했음을 알았습니다.하지만 에 대한 페이지 및 페이지 링크를 살펴본 후 기능을 사용 중지하면 누구나 볼 수 있는지를 물어볼 수 있다고 생각했습니다. 단순히 사용법을 감지하는 것에 대한 유용한 답변.뒤로 버튼과 새 창을 찾는 방법은 무엇입니까?

뒤로 버튼 비활성화에 대한 better articles 중 하나에 설명 된 방법은 페이지 전환을 생성하여 작동하므로 감지하기에는별로 사용하지 않습니다.

window.history.next의 존재는 뒤로 버튼을 감지하는 메커니즘을 제공 할 수 있습니다. 그러나 얼마나 광범위하게 지원됩니까? 비정상적인 권한이 필요합니까?

Jonathan's answer이 게시물에 유망 해 보이지만 첫 번째 방문시 창 이름을 설정할 수 있다고 가정합니다. 쿠키가 없으면 첫 번째 검색을 감지 할 수 있습니다. 다른 아이디어?

TIA

+2

조나단의 내 모습 약속하지만, bobince에 의해 허용 대답은 정확 하나입니다 답변 : 당신은 할 수 없습니다. 유일한 합리적인 방법은 응용 프로그램 서버 측을 빌드하여 사용자가 돌아가더라도 작동하도록하는 것입니다. 그것은 그리 어렵지 않고 다시로드, 양식 두 번 제출, 추가 창 열기 등과 같은 "예기치 않은"사용자 작업을 방지합니다. – RoToRa

+0

MSIE 및 Firefox에서 history.length를 사용하여 새로운 창 대부분을 검색 할 수 있습니다. . 즉, 조나단 (Jonathan)의 대답은 대부분의 새 창에서 유효합니다 (내 의견 참조). 그러나 뒤로 버튼에 관해서 : history.next는 Firefox에서 보호됩니다. 불행히도 현재 코드베이스를 수정하는 것은 옵션이 아닙니다. – symcbean

답변

0

. 이 스크립트는 완전히 테스트 된 적이 없지만 일부 기술을 사용하여 뒤로 버튼을 감지하는 것과 동일한 효과를 얻을 수 있어야합니다.

http://pastebin.no/32fx

+0

고마워 크리스챤 -이 게시물을 발견했습니다 (http://stackoverflow.com/questions/136937/is-there-a-way-to-catch-the-back-button-event-in- javascript/2348076 # 2348076) 비슷한 접근 방식을 취하는 내 질문을하기 때문에. 이것은 분명히 문제를 해결하는 올바른 방법처럼 보입니다. – symcbean

+0

내 스크립트를 사용하게되면, 그 일을 어떻게 처리했는지보고 싶습니다. :) –

0

sessionStorage/localStorage를 사용하십시오. 당신이 sessionStorage를 사용하는 경우가 브라우저를 닫고 다시 온다면

if (!sessionStorage.hasBeenHereBefore) sessionStorage.hasBeenHereBefore = true; 
else { 
    // Code to run if they've been here before. 
} 

후, 그것은 처음처럼 보일 것입니다,하지만 당신은 로컬 스토리지를 사용하는 경우 그것은 영원히있을 것입니다.

당신은 같은 몇 가지 비밀 이벤트를 찾는 시도 할 수 있습니다 : 나는 잠시 다시 몇 가지 코드를 작성

window.addEventListener('historyback', function() {}, false); 
window.addEventListener('navigateback', function() {}, false); 
window.addEventListener('returntopage', function() {}, false); 
+0

그 질문은 다른 질문에 대한 답이라고 생각합니다. 완화하려는 문제는 서버 측 세션의 상태가 사용자가 선택한 현재 위치와 일치하지 않는 부분입니다. – symcbean

+0

알아요.하지만 실제로 이것은 지금 당신이 얻고 자하는만큼 가깝습니다. 당신은 창 이벤트를 잔뜩 시도 할 수 있습니다. (답변의 예) – Kayla

관련 문제