文章目录

最近一个开发中的项目需要检测所有浏览器的关闭、刷新行为,但是普通的 onbeforeunload 不能满足要求,因为像Chrome就不响应,而有不少浏览器都是基于Chromium二次开发的,肯定会有相似的问题。

很幸运,度娘到了一个非常好用的方法,不敢藏匿,拿来与大家分享。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var UnloadConfirm = {};
//设置弹出信息内容
UnloadConfirm.MSG_UNLOAD = "数据尚未保存,离开后可能会导致数据丢失";
//弹出框方法定义
UnloadConfirm.set = function(a) {
window.onbeforeunload = function(b) {
b = b || window.event;
b.returnValue = a;
return a
}
};
//清除弹出框方法
UnloadConfirm.clear = function() {
//fckDraft.delDraftById(); //网上代码拷贝下来的内容,看上去没什么用,也没有一个叫做fckDraft的对象
window.onbeforeunload = function() {}
};
//调用弹出框方法
UnloadConfirm.set(UnloadConfirm.MSG_UNLOAD);

该方法兼容IE6+、Firefox、Chrome和Safari,而且对Alt+F4 、右键关闭都起作用。更厉害的是,对移动浏览器也一样好用。

♦ 本文固定连接:https://www.gsgundam.com/archive/2014-07-22-js-listen-web-browser-close-refresh-ie6-firefox-chrome-safari/

♦ 转载请注明:GSGundam 2014年07月22日发布于 GSGUNDAM砍柴工

♦ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

♦ 原创不易,如果页面上有适合你的广告,不妨点击一下看看,支持作者。(广告来源:Google Adsense)

♦ 本文总阅读量