2012-06-28 3 views
0

아주 간단한 질문입니다. 사용자가 브라우저를 닫을 때 작업을 수행해야합니다. 나는 아래의 기능을 알고 있어요 :JQuery - 브라우저 닫기 이벤트에서 작업 수행

 
$(window).bind("beforeunload", function() { 
    return false; 
}) 

$(window).unload(function() { 
    return false; 
}) 

그러나이 두 가지 - "이 페이지에 머무르기"- - "이 페이지를 남겨주세요"(이어야 크롬에) 사용자를 요청하는 경고를 가져온다.

나는 그런 일이 일어나길 원하지 않는다. 나는 그가 떠날 때 DB에 대한 시간을 업데이트하는 것과 같이 닫을 때 작업을 수행하기를 원합니다.

어떤 아이디어 감사

+0

꽤 휴대 할 수 없습니다. 다른 브라우저는 다른 것들을 위해 "언로드"이벤트를 실행합니다 (탐색 할 때, 창을 닫을 때 또는 다른 경우). "beforeunload"이벤트조차도 그렇게 신뢰할 만하지 않습니다 (= 많은 브라우저/버전 조합을 테스트해야합니다). 아무것도 반환하지 않으면 대화 상자가 표시되어서는 안되며 반환 값을 사용하여 사용자에게 프롬프트 할 수 있습니다 (예 : 답변을 편집 할 때 여기로 이동할 때와 같이). 그냥 비동기 아약스 호출을 사용하여 물건을 처리하십시오. 그게 전부입니다. 새로 고침을 위해 해고 될 수도 있습니다. –

+0

네, 당신의 요지를 봅니다 - 고마워요 – Gublooo

답변

1

오페라가 실제로 이것을 지원하지 않기 때문에 크로스 브라우저를 제대로 수행하는 것은 불가능합니다 : 여기에 명시된 바와 같이 : cross-browser Onunload and Onbeforeunload ? (particularly opera 11) 및 다른 많은 문서화 된 곳에서.

또 다른 언급처럼 다양한 구현 정도가 있습니다. 예를 들어 Firefox는 beforeunload에 표시되는 경고 상자에 자신의 메시지를 추가 할 수 있지만 Chrome에서는 표시 할 수없는 일반적인 메시지를 표시합니다. 정말로 많은 의미가 있습니다.

+0

그 링크를 주셔서 감사합니다 – Gublooo

+0

np 희망이 있습니다 :) – Sammaye

0

당신은 정기적으로 (아약스를 사용하여) 사용자 현재 상태를 저장하거나 (백 엔드에서) 서버에 마지막 요청을 기록 할 수 있습니다.

관련 문제