日期:2014-05-17  浏览次数:20530 次

关于onbeforeunload方法的触发条件
我要实现的功能是统计用户的下线时间
用global.asax的Session_End统计session失效的话很不准确
所以我用js的onbeforeunload()方法
我查了一下这个方法的触发条件竟然有这么多 我只需要关闭浏览器的时候触发 请问怎么屏蔽其他的触发条件。
触发于:
关闭浏览器窗口 
通过地址栏或收藏夹前往其他页面的时候 
点击返回,前进,刷新,主页其中一个的时候 
点击 一个前往其他页面的url连接的时候 
调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit. 
当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。 
重新赋予location.href的值的时候。 
通过input type=”submit”按钮提交一个具有指定action的表单的时候。

------解决方案--------------------
写一个cookie(可以直接用document.cookie),并且不设置它的过期时间(默认就是网页关闭后失效)
你在每个请求里判断一下,这个cookie是否为空,就可以知道有没有关闭浏览器
不过cookie可以人为清除,可以考虑结合Session
------解决方案--------------------

------解决方案--------------------
直接关闭浏览器貌似js无法捕获!