onbeforeunload事件为什么没有用

  • onbeforeunload事件是一个事件当页面将要被卸载(更新)的时候会被触发。

  • 卸载(更新)讲的就是unload事件当页面关闭后,会触发。

funcRef指的是一个方法也就是一个函数引用。

3.3在单页面中使用:

一般在项目中直接使用window或者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这个条件可以不要.

我要回帖

更多关于 onbeforeunload事件 的文章

 

随机推荐