微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript判断网页是关闭还是刷新

原理就是通过离开页面行为时间onunload触发时间去检测此时的浏览器的窗口大小,根据大小由此判断用户是刷新,跳转或是关闭行为程序

代码如下

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

代码如下

rush:js;"> document.documentElement.scrollWidth-20; if(b && evt.clientY<0 || evt.altKey){ //alert("是关闭而非刷新"); window.location.href="../include/logout.php"; } else{ //alert("是刷新而非关闭"); return false; } } else{//火狐浏览器 if(document.documentElement.scrollWidth!=0) { //alert("是刷新而非关闭"); //window.location.href="report_list.php?ss=1"; return false;
    }
    else{
      alert("是关闭而非刷新");
      //window.location.href="repost_list.php?ss=0";
      //alert("bbbbbbb");
    }
  }
}

// --></mce:script>
<BODY onunload="close(event);">

上面的方法没办法判断多选项卡的浏览器,如360,ie8这种,下面再看

代码如下

rush:js;"> function CloSEOpen(event) { if(event.clientX<=0 || event.clientY<0) { //获取当前时间 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; onbeforeunload(); // window.event.returnValue = '关闭浏览器将退出系统.'; } else { alert("刷新或离开"); } }
    var currentKeyCode = -1;

function document.onkeydown() { // 本窗口的所有下属页面都必须含有本函数

top.currentKeyCode = event.keyCode;

}

function onbeforeunload(){

var sw = 0,s0 = "";
if (currentKeyCode == 116)
{
s0 += "刷新窗口!(F5)";
}
else
{
if ((event.altKey)&&(currentKeyCode == 115))
{
s0 += "关闭窗口!(alt+F4)"; sw = 1;
//获取当前时间
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();
}
else
{
if ((event.clientX > 0)&&(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;
}

}

上面只有不能使用在任务栏关闭了,基本可以满足我们的要求了。

以上内容就是本文给大家介绍的javascript判断网页是关闭还是刷新,希望大家喜欢。

原文地址:https://www.jb51.cc/js/52410.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐