如何用JS捕捉 浏览器关闭事件,我想在浏览器关闭的时候记录一些日志。要兼容Firefox和IE 6、7、8 !3Q....

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用JS捕捉 浏览器关闭事件,我想在浏览器关闭的时候记录一些日志。要兼容Firefox和IE 6、7、8 !3Q....相关的知识,希望对你有一定的参考价值。

关键是需要兼容浏览器,而且每个浏览器都可以通过多种方式将浏览器关闭(如:右上角点X、任务栏右键关闭、TAB页签点X 等等...)我也用过onbeforeunload事件 ,但JS代码怎么写都不能捕捉完全。

//IE浏览器
window.onbeforeunload = function()
if(document.all)
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b || window.event.clientY < 0 || window.event.altKey)
alert("IE关闭");



//火狐浏览器
window.onunload = function()
if(!document.all)
if(document.documentElement.scrollWidth==0)
alert("FF关闭");




上面两段代码
IE6 :任务栏不能捕捉,其它都可以
IE7:多TAB页时 以各种方式点击关闭后 选择关闭当前页不行,任务栏关闭不行,其它都可以
IE8: 同IE7
FF: 点TAB页关闭可以(单TAB页情况下),其它都不行..

请大家帮忙...

参考技术A   尊敬的用户,您好!很高兴为您答疑。
  考虑到浏览器实际是一个应用载体,而web页面是此载体内的应用,您希望通过内部应用过多地接管外部事件,而不依赖可以获得更高权限的内容(如插件等),是很难办到的。而在跨浏览器的情况下,因为不同的浏览器设计方面的差异以及安全机制的迥异,使得您的需求更加难以实现,建议考虑换个思路实现此需求。
  希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
参考技术B js有一个onbeforeunload事件,支持关闭的时候执行一些代码。但会限制。比如,如果返回return false.系统还是会提示是否关闭。
你这里,只是写日志就好说,了在onbeforeunload里ajax数据到服务器端就可以了。
参考技术C js 管不了这么宽。
我在另一相同问题(http://zhidao.baidu.com/question/211203614.html)的回答:

我 Google 的结果是:没有办法。
可以尝试 session timeout 代替。本回答被提问者采纳
参考技术D 搜索jquery unload

以上是关于如何用JS捕捉 浏览器关闭事件,我想在浏览器关闭的时候记录一些日志。要兼容Firefox和IE 6、7、8 !3Q....的主要内容,如果未能解决你的问题,请参考以下文章

js 实现一些跨浏览器的事件方法详解及实例

我想在 AR 渲染对象上运行浏览器。 three.js 能做到吗? [关闭]

如何捕获浏览器关闭事件?

js 浏览器窗口 刷新关闭事件

如何使用javascript或php检测窗口关闭事件[重复]

如何用 PHP 制作聊天室脚本? [关闭]