原理は、ページを離れる動作時間の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 がページの更新時に実行されます。
このようにして、onbeforeunload でマークを追加し、onunload でマークを判断してページが本当に閉じられているかどうかを判断できます
ff との互換性がさらに完全になります
コードは次のとおりです
document.documentElement.scrollWidth-20; if(b && evt.clientY
上記のメソッドでは、360、ie8 などのマルチタブ ブラウザーを判断できません。以下の
コードを見てみましょう。以下の通り
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; } }
上記のみでは使用できず、タスクバーが閉じていますが、基本的に要件を満たしています。
上記のコンテンツは、Web ページが閉じられるか更新されるかを決定するためにこの記事で紹介されている JavaScript です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。