判断用户的在线状态 onbeforeunload事件

 更新时间:2011年03月05日 11:51:50   作者:  
window.event.clientX和window.event.clientY 将捕捉当前事件发生时鼠标相对与窗口的桌面坐标,通常情况下IE的关闭按钮都会在页面的右上部分,所以点关闭的时候鼠标的坐标的Y坐标一定是小于0的
获得用户登陆状态不用说了,判断离开的话就有一点问题了,如果说用户都是按照设计者的规定触发退出事件离开的话那就没什么难度了,但是用户的离开方式多种多样,怎么在用户非法离开的时候即时的判断离开呢?最常见的非法离开就是关闭浏览器了。
复制代码 代码如下:

<BODY onbeforeunload="body_onUnload()">
<script>
window.onbeforeunload = function() {
if (window.event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
alert("浏览器关闭");
}
else
{
alert("刷新或者跳转到其他页");
}
}
</script>
</BODY>

以上是一个片段,BODY 的 UNLOAD和onbeforeunload事件会在浏览器清除所加载的信息时被触发,也就是说页面在回送、重定向或被关闭的时候就会触发 ,通过这个事件加上JAVASCRIPT处理就可以实现非法关闭浏览器也即时统计在线人数了。

但是有个问题,怎么判断用户是关闭还是刷新、回送、重定向呢?

window.event.clientX和window.event.clientY 将捕捉当前事件发生时鼠标相对与窗口的桌面坐标,通常情况下IE的关闭按钮都会在页面的右上部分,所以点关闭的时候鼠标的坐标的Y坐标一定是小于0的,另外,鼠标坐标的X方向上坐标数值会大于窗体宽度,所以,从这两个条件就可以判断鼠标是不是在点关闭按钮引发的onbeforeload事件。
还有一种关闭方法是ALT+F4 ,通过event.altKey就可以判断,事件发生的时候ALT键是不是被按下了,这样也就判断出了是不是时候ALT+F4来关闭窗口。

不过也出现一个问题,当使用一些特殊的左面主题的时候 关闭按钮可触发的坐标数值不一定小于窗体宽度,所以,上面例子中的window.event.clientX>document.body.clientWidth这个条件可以不要.

相关文章

  • 谈谈JS中常遇到的浏览器兼容问题和解决方法

    谈谈JS中常遇到的浏览器兼容问题和解决方法

    这篇文章主要介绍了谈谈JS中常遇到的浏览器兼容问题和解决方法 ,有些代码在某些浏览器的某些版本中表现出不兼容,影响页面的体验;这时就需要处理了这些兼容问题,让页面在多个版本的浏览器上运行良好。
    2016-12-12
  • BootStrap实现带关闭按钮功能

    BootStrap实现带关闭按钮功能

    这篇文章主要介绍了BootStrap实现带关闭按钮功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • Bootstrap每天必学之响应式导航、轮播图

    Bootstrap每天必学之响应式导航、轮播图

    Bootstrap每天必学之响应式导航、轮播图,本文的主要内容是在导航条的下方做一张轮播图,自动播放最新的重要动态,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • 各浏览器对document.getElementById等方法的实现差异解析

    各浏览器对document.getElementById等方法的实现差异解析

    这篇文章主要是对各浏览器对document.getElementById等方法的实现差异进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • npm qs模块使用详解

    npm qs模块使用详解

    这篇文章主要介绍了npm qs模块使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 微信小程序通过websocket实时语音识别的实现代码

    微信小程序通过websocket实时语音识别的实现代码

    这篇文章主要介绍了微信小程序通过websocket实时语音识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 使用JavaScript实现贪吃蛇游戏

    使用JavaScript实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了使用JavaScript实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 微信小程序之仿微信漂流瓶实例

    微信小程序之仿微信漂流瓶实例

    这篇文章主要介绍了微信小程序之仿微信漂流瓶实例,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • 详解微信小程序input标签正则初体验

    详解微信小程序input标签正则初体验

    这篇文章主要介绍了详解微信小程序input标签正则初体验,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 深入浅析JS中的严格模式

    深入浅析JS中的严格模式

    严格模式就是使JS编码更加规范化的模式,消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。下面通过代码相结合的形式给大家介绍js中的严格模式,感兴趣的朋友一起看看吧
    2018-06-06

最新评论