如何用js监听浏览器页面的关闭/刷新事件

发布网友 发布时间:2022-04-23 05:24

我来回答

2个回答

懂视网 时间:2022-05-13 22:03

功能需求:
web画面,关闭浏览器时候,我需要清除某个文件。

目前状况:
在onbeforeunload或者unload方法里面做处理。

问题难点:
因为系统有很多画面,我无法区分触发动作是刷新,迁移还是真正的浏览器的关闭。
搜到过一些网上的坐标位置判断方法,ie8以前使用还可以,但是针对高版本的ie已经不能完全适用,并且判断也不够严密。

哪位大神可以帮助一下。提供个可行的实现思路也可以。


回复讨论(解决方案)

没怎么明白。。。贴点代码看看

不用找了,这问题现在基本上无解

不用找了,这问题现在基本上无解



我在session End里面做,可是客户还是嫌时间长。。。

顺着这个思路,如果我想浏览器关闭时候做点啥,还可以怎么处理好,有没有好的建议啊。。


不用找了,这问题现在基本上无解



我在session End里面做,可是客户还是嫌时间长。。。

顺着这个思路,如果我想浏览器关闭时候做点啥,还可以怎么处理好,有没有好的建议啊。。


看你的意思是要判断用户是否了离开你的网站
别说没有办法判断浏览器关闭,就算有办法,但是你有没有想过以下的情况:
如果多个浏览器窗口中都打开着你的网站,关闭其中一个浏览器窗口,也并没有离开你的网站。
还有。当用户跳转到别的网站时,已经离开了你的网站。可浏览器窗口并没有关闭,就算最后浏览器窗口关闭了,你的网站也无法得知了

所以你还是想别的办法吧,如判断会话状态session

谢谢楼上,我们多浏览器或者多tab开画面的情况不考虑。
这个地方怎么处理都不完美。。提交调查报告,让领导定夺吧,哈哈

热心网友 时间:2022-05-13 19:11

首先判断浏览器的类型,简便可用navigator.userAgent()获取浏览器的字符串,与浏览器类型做查找即可。
目前对Chrome和firfox区分关闭和刷新成功。
浏览器为firfox时flag为false,Chrome为true。
window.onload(){
window.onunload = function() {
if(flag){
console.log('关闭操作');
}
else {
console.log('刷新操作');
}
};
window.onbeforeunload = function () {
if(!flag){
console.log('关闭操作');
}
else{
console.log('刷新操作');
}
};
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com