浏览器关闭触发java监听器_监听浏览器关闭事件

本文介绍了如何使用JavaScript监听浏览器关闭事件,并在关闭时通过Ajax调用Java后台删除用户登录信息。针对不同浏览器(IE、Firefox、Chrome)的兼容性问题进行了探讨,提供了不同的实现方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 1: 监听浏览器关闭事件  ---  后台删用户登录信息    ---   IE不可用

.jsp :var _beforeUnload_time = 0, _gap_time = 0;

var is_fireFox = navigator.userAgent.indexOf("Firefox")>-1;//是否是火狐浏览器

window.onunload = function (){

_gap_time = new Date().getTime() - _beforeUnload_time;

if(_gap_time <= 5)

$.post("webLoginController.do?delSession",function(){});  //浏览器关闭

//  else

//$.post("webLoginController.do?delSession",function(){});  //浏览器刷新

}

window.onbeforeunload = function (){

_beforeUnload_time = new Date().getTime();

if(is_fireFox)//火狐关闭执行

$.post("webLoginController.do?delSession",function(){});

};

.java :@RequestMapping(params = "delSession")

public void delSession(HttpSession session) {

boolean isTrue = false;

String userId = session.getAttribute("userId").toString();

if (userId != null && !userId.equals("")) {

isTrue = webLoginService.deleteOnline(userId);

} else {

isTrue = false;

}

session.invalidate();

}

# 2 : IE可用  ---  谷歌不可用【控制台报错】

window.onbeforeunload=function(){

alert( "您确定退出吗?");

}

# 3 : IE 谷歌 可用

window.onbeforeunload=function(){

return "您确定退出吗?";

}

页面加载时只执行onload

页面关闭时只执行onunload

页面刷新时先执行onbeforeunload,然后onunload,最后onload。

前辈的结论是:

//对于ie,谷歌,360:

--  页面加载时只执行onload

--  页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件。

-- 页面关闭时,先onbeforeunload事件,再onunload事件。

//对于火狐:

-- 页面刷新时,只执行onunload;

-- 页面关闭时,只执行onbeforeunload事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值