学无止境啊
最近因为公司需求,所以要监听浏览器界面的关闭事件。研究一下,发现由于浏览器版本的过多,导致很多的监听无法实现。
针对于这样的事件,Java对浏览器的选项卡的监听只能通过onunload
和 onbeforeunload
,但可能这就是网络大世界的魅力吧,各种浏览器对于刷新和加载其实区别不大,而又有浏览器比如谷歌以及火狐,虽然总是得程序员钟爱,但其事件执行的方法又于其他不同,有兴趣可以去看看执行的顺序。
我这里使用的是利用加载和关闭的处理时间不同进行判断,反正浏览器最后都会执行onload的方法,所以这样判断完全没有问题的。从前思路错了,一直在执着于选项卡关闭的监听,如今看见了一条评论,恍然大悟,越来越感慨学无止境。
话不多说,直接上代码。
/**
*选项卡关闭判断
* @constructor
*/
var beginTime = 0;//开始时间
var differTime = 0;//差
function BrowserCtrl() {
window.onunload = function (){
differTime = new Date().getTime() - beginTime;
if(differTime <= 6) {
$.ajax({
type: "POST",
url:url,
dataType: "JSON",
cache: false,
})
}
else{
console.log("刷新")
}
}
window.onbeforeunload = function (){
beginTime = new Date().getTime();
};
}
后端
接收后
System.exit(1);//非正常退出(直接终止程序,你可以选择 0 ,正常终止)