Le principe est de détecter la taille de la fenêtre du navigateur à ce moment-là grâce au temps de déclenchement du déchargement qui consiste à quitter le temps de comportement de la page. En fonction de la taille, il est possible de juger si l'utilisateur actualise, saute ou ferme le programme de comportement
.Le code est le suivant
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('跳转或者刷新页面行为'); } }
Il fonctionne bien lorsque vous utilisez le bouton de fermeture dans le coin supérieur droit du navigateur, mais ce n'est pas le cas ne fonctionne pas lors de la fermeture sur un onglet ou de la fermeture sur la barre des tâches
la balise js n'a que l'événement onloadonunloadonbeforeunload mais pas d'événement onclose.
L'événement onunload sera exécuté que la page soit fermée ou actualisée.
Comment capturer la fermeture de la page ?
Onload est exécuté lorsque la page est chargée
Onunload est exécuté uniquement lorsque la page est fermée
Onbeforeunload est exécuté en premier, puis onunload et enfin onload est exécuté lorsque la page est actualisée.
De cette façon, nous pouvons ajouter une marque dans onbeforeunload et juger la marque dans onunload pour déterminer si la page est vraiment fermée
Compatibilité plus complète avec ff
Le code est le suivant
🎜>document.documentElement.scrollWidth-20; if(b && evt.clientY
La méthode ci-dessus ne peut pas juger les navigateurs multi-onglets, tels que 360, ie8, etc. Regardons le code
ci-dessous Comme suit
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; } }
Ce qui précède seul ne peut pas être utilisé et la barre des tâches est fermée, ce qui répond fondamentalement à nos exigences.
Le contenu ci-dessus est le javascript introduit dans cet article pour déterminer si la page Web est fermée ou actualisée. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !