捕获浏览器关闭、刷新事件不同情况下的处理方法

 更新时间:2013年06月02日 17:14:16   作者:  
在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从session和application中将此用户移除,下面与大家分享下具体的捕捉方法
在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从session和application中将此用户移除。

由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:
1.真正的关闭浏览器 (a.点击关闭按钮 b.右击任务栏关闭 c.按alt+F4关闭)
2.刷新浏览器。

那如何判断区分这两种动作呢?

一. Javascript代码处理方法:
复制代码 代码如下:

function window.onbeforeunload()
{
//用户点击浏览器右上角关闭按钮或是按alt+F4关闭
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
// alert("点关闭按钮");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//用户点击任务栏,右键关闭。s或是按alt+F4关闭
else if(event.clientY > document.body.clientHeight || event.altKey)
{
// alert("任务栏右击关闭");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//其他情况为刷新
else
{
// alert("刷新页面");
}
}

其中 event.clientX 鼠标光标X坐标
document.body.clientWidth 窗体工作区宽度
event.clientY 鼠标光标Y坐标
event.altKey 是否按下alt键
二. 事件捕捉方法:
复制代码 代码如下:

<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" >
</body>
<script language="JavaScript" type="text/javascript">
var DispClose = true;
function CloseEvent()
{
if (DispClose)
{
return "是否离开当前页面?";
}
}
function UnLoadEvent()
{
DispClose = false;
//在这里处理关闭页面前的动作
}
</script>

在页面卸载之前引发onbeforeunload事件,如果用户选择“是”即确定卸载页面将引发onunload事件,否则返回页面不做任何操作。

相关文章

  • JS实现的计数排序与基数排序算法示例

    JS实现的计数排序与基数排序算法示例

    这篇文章主要介绍了JS实现的计数排序与基数排序算法,结合实例形式简单分析了计数排序与基数排序的原理与JS实现技巧,需要的朋友可以参考下
    2017-12-12
  • 12306验证码破解思路分享

    12306验证码破解思路分享

    本文给大家分享的是个人对于12306的新的验证码系统的破解思路,仅仅是思路,还没进行实地验证,推荐给大家,抛砖引玉吧。
    2015-03-03
  • JS实现的页面自定义滚动条效果

    JS实现的页面自定义滚动条效果

    这篇文章主要介绍了JS实现的页面自定义滚动条效果,涉及JavaScript结合css设置页面滚动条样式的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • JS简单获取当前年月日星期的方法示例

    JS简单获取当前年月日星期的方法示例

    这篇文章主要介绍了JS简单获取当前年月日星期的方法,结合完整实例形式分析了javascript基于自定义函数获取当前日期时间的方法,涉及javascript中Date()类的使用与日期相关运算技巧,需要的朋友可以参考下
    2017-02-02
  • 原生js和jquery中有关透明度设置的相关问题

    原生js和jquery中有关透明度设置的相关问题

    设置透明度问题,比如图片的淡入淡出效果。下面我介绍一下在原生js和jQuery中设置透明度的相关问题和注意点
    2014-01-01
  • 解决bootstrap下拉菜单点击立即隐藏bug的方法

    解决bootstrap下拉菜单点击立即隐藏bug的方法

    本篇文章主要介绍了解决bootstrap下拉菜单点击立即隐藏bug的方法,具有一定的参考价值,有兴趣的可以了解一下
    2017-06-06
  • 微信小程序的引导页实现代码

    微信小程序的引导页实现代码

    这篇文章主要介绍了微信小程序的引导页实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • js实现a标签超链接提交form表单的方法

    js实现a标签超链接提交form表单的方法

    这篇文章主要介绍了js实现a标签超链接提交form表单的方法,涉及javascript针对表单操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • ajax请求get与post的区别总结

    ajax请求get与post的区别总结

    本篇文章是对ajax请求get与post的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • layui的table中显示图片方法

    layui的table中显示图片方法

    今天小编就为大家分享一篇layui的table中显示图片方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论