>웹 프론트엔드 >JS 튜토리얼 >다양한 상황에서 브라우저 닫기 및 새로 고침 이벤트를 캡처하는 방법_javascript 기술

다양한 상황에서 브라우저 닫기 및 새로 고침 이벤트를 캡처하는 방법_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:33:001391검색

회원의 온라인 상태에 대한 질문을 처리할 때 브라우저가 닫혀 있는지 여부에 따라 사용자가 오프라인인지 확인한 다음 세션과 애플리케이션에서 사용자를 제거해야 하는 경우가 많습니다.

브라우저는 상태 비저장이므로 브라우저 종료를 캡처할 때 두 가지 상황이 발생합니다.
1. 브라우저를 실제로 닫습니다(a. 닫기 버튼을 클릭합니다. b. 작업 표시줄을 마우스 오른쪽 버튼으로 클릭하여 닫습니다. c. 닫으려면 Alt F4를 누르세요.
2. 브라우저를 새로 고칩니다.

이 두 동작을 어떻게 구별하나요?

1. 자바스크립트 코드 처리 방법:

코드 복사 코드는 다음과 같습니다.

function window.onbeforeunload()
{
//사용자가 브라우저 오른쪽 상단 버튼을 닫거나 Alt F4를 눌러
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
// Alert( "닫기 버튼을 클릭하세요.");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="이 페이지를 종료하시겠습니까?";
}
//사용자 클릭 작업 표시줄을 마우스 오른쪽 버튼으로 클릭하여 닫습니다. s 또는 Alt F4를 눌러 닫습니다.
else if(event.clientY > document.body.clientHeight || event.altKey)
{
// Alert("닫으려면 작업 표시줄을 마우스 오른쪽 버튼으로 클릭하세요." );
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="이 페이지를 종료하시겠습니까?"
>//다른 상황은 새로 고침
else
{
// Alert("페이지 새로 고침")
}
}

where event.clientX mouse 커서 X 좌표
document.body.clientWidth 폼 클라이언트 영역 너비
event.clientY 마우스 커서 Y 좌표
event.altKey Alt 키 눌림 여부

2. 이벤트 캡처 방법:
코드 복사 코드는 다음과 같습니다.



페이지가 언로드되기 전에 onbeforeunload 이벤트를 트리거합니다. 사용자가 "예"를 선택하면 언로드 페이지가 onunload 이벤트를 트리거하는지 확인합니다. 그렇지 않으면 페이지가 아무런 작업 없이 반환됩니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.