사용자 의 온라인 상 태 를 판단 하 는 onbeforeunload 이벤트

사용자 로그 인 상 태 를 얻 는 것 은 말 할 것 도 없고 떠 나 는 것 을 판단 하 는 데 문제 가 있 습 니 다.사용자 가 모두 디자이너 의 규정 에 따라 탈퇴 사건 을 촉발 하여 떠 나 는 것 이 라면 어렵 지 않 습 니 다.그러나 사용자 의 이탈 방식 이 다양 합 니 다.어떻게 사용자 가 불법 으로 떠 날 때 즉시 판단 하고 떠 날 수 있 습 니까?가장 흔히 볼 수 있 는 불법 이탈 은 브 라 우 저 를 닫 는 것 이다
 
<BODY onbeforeunload="body_onUnload()">
<script>
window.onbeforeunload = function() {
if (window.event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
alert(" ");
}
else
{
alert(" ");
}
}
</script>
</BODY>
이상 은 한 세 션 입 니 다.BODY 의 UNLOAD 와 onbeforeunload 이 벤트 는 브 라 우 저 에서 불 러 온 정 보 를 지 울 때 실 행 됩 니 다.즉,페이지 가 전송 되 거나 방향 을 바 꾸 거나 닫 힐 때 실 행 됩 니 다.이 이 이 벤트 를 통 해 JAVASCRIPT 처 리 를 하면 불법 으로 브 라 우 저 를 닫 고 온라인 인원 을 즉시 집계 할 수 있 습 니 다.그런데 문제 가 있 습 니 다.사용자 가 닫 았 는 지,새로 고침,전송,방향 을 바 꾸 었 는 지 어떻게 판단 합 니까?window.event.clientX 와 window.event.clientY 는 현재 이벤트 가 발생 했 을 때 마우스 가 창 과 상대 적 으로 데스크 톱 좌 표를 포착 합 니 다.보통 IE 의 닫 기 단 추 는 페이지 의 오른쪽 상단 에 있 기 때문에 닫 을 때 마우스 의 좌표 Y 좌 표 는 0 보다 작 아야 합 니 다.또한 마우스 좌표 의 X 방향 에서 좌표 수 치 는 창 너비 보다 크기 때문에...이 두 가지 조건 에서 마우스 가 닫 기 단 추 를 누 르 면 발생 하 는 onbeforeload 사건 인지 아 닌 지 를 판단 할 수 있다.또 하나의 닫 는 방법 은 ALT+F4 로 이벤트.alKey 를 통 해 이벤트 가 발생 했 을 때 ALT 키 가 눌 렸 는 지 판단 할 수 있 으 며,이로써 ALT+F4 가 창 을 닫 을 때 가 아 닌 지 판단 할 수 있다.그러나 문제 도 있 습 니 다.특수 한 왼쪽 테 마 를 사용 할 때 단 추 를 닫 으 면 터치 할 수 있 는 좌표 수 치 는 반드시 창 너비 보다 작 지 않 기 때문에 위의 예 에서 window.event.clientX>document.body.client Width 라 는 조건 을 사용 하지 않 아 도 됩 니 다.

좋은 웹페이지 즐겨찾기