페이지 동작 시간을 떠나는 onunload 트리거 시간을 통해 이때의 브라우저 창 크기를 감지하는 것이 원칙입니다. 크기에 따라 사용자가 동작 프로그램을 새로 고칠지, 점프할지, 닫을지를 판단할 수 있습니다
코드는 다음과 같습니다
window.onunload = function(){ var a_n = window.event.screenX - window.screenLeft; var a_b = a_n > document.documentElement.scrollWidth-20; if(a_b && window.event.clientY< 0 || window.event.altKey){ alert('关闭页面行为'); }else{ alert('跳转或者刷新页面行为'); } }
브라우저 오른쪽 상단의 닫기 버튼을 이용하면 잘 되는데, 그렇지 않습니다. 탭을 닫거나 작업 표시줄을 닫을 때는 작동하지 않습니다.
js 태그에는 onloadonunloadonbeforeunload 이벤트만 있고 onclose 이벤트는 없습니다.
onunload 이벤트는 페이지가 닫히거나 새로 고쳐지는 것과 관계없이 실행됩니다.
페이지 닫는 모습을 어떻게 캡쳐하나요?
페이지가 로드될 때 Onload가 실행됩니다.
페이지가 닫힐 때만 Onunload가 실행됩니다.
Onbeforeunload가 먼저 실행되고, 그 다음 onunload가 실행되고, 페이지가 새로 고쳐질 때 마지막으로 onload가 실행됩니다. <… 🎜>
document.documentElement.scrollWidth-20; if(b && evt.clientY
function CloseOpen(event) { if(event.clientX<=0 || event.clientY0)&&(event.clientX < document.body.clientWidth)) { s0 += "刷新窗口!"; } else { //获取当前时间 var date=new Date(); //将date设置为过去的时间 alert("关闭网页"); date.setTime(date.getTime()-10000); //将userId这个cookie删除 document.cookie="zhuangtao;expire="+date.toUTCString(); document.cookie="quanxianzifucuan;expire="+date.toUTCString(); document.cookie="quanxian;expire="+date.toUTCString(); s0 += "关闭窗口!"; sw = 1; } } } if (sw == 1) { event.returnValue = ""; } else { currentKeyCode = -1; } }