前段时间有一需求是,希望用户点击关闭标签页或浏览器窗口时,弹出一提示信息,
之前都没做过这样的例子,然后又是百度一堆搜。。。
按照百度说法,onbeforeunload和onunload都是可以捕获到页面离开的事件,
但是,我在自己电脑测试过后,不管啥浏览器,onunload都不生效,百思不得其解,难道是我浏览器太新了么,网上也没相关说明
然后使用onbeforeunload...
但是,onbeforeunload有个缺点是,
点击a链接或者提交表单、前进、后退、刷新等都会触发,
关于a链接或click事件等,可设置个布尔值判断,如:
已测试,兼容ie7、8、9、ff、chrome
之前都没做过这样的例子,然后又是百度一堆搜。。。
按照百度说法,onbeforeunload和onunload都是可以捕获到页面离开的事件,
但是,我在自己电脑测试过后,不管啥浏览器,onunload都不生效,百思不得其解,难道是我浏览器太新了么,网上也没相关说明
然后使用onbeforeunload...
使用onbeforeunload可以捕获到页面的离开,它可以自定义页面离开时弹框的提示信息(firefox不支持自定义提示信息),如下:
window.onbeforeunload = function(e){
var evt = e ? e : (window.event ? window.event : null); //此方法为了在firefox中的兼容
if(thisPage==false){
if($.browser.mozilla){
alert("Pressing Ctrl+D to Bookmark This Page. Diablo waiting you!");
}else{
evt.returnValue='Pressing Ctrl+D to Bookmark This Page. Diablo waiting you!';
}
}
};
但是,onbeforeunload有个缺点是,
点击a链接或者提交表单、前进、后退、刷新等都会触发,
关于a链接或click事件等,可设置个布尔值判断,如:
$("a").on("click",function(e){
thisPage = true;
});
// 当thisPage为true时,就不弹出提示框
window.οnbefοreunlοad=null;
this.oForm.submit();
已测试,兼容ie7、8、9、ff、chrome
关于onbeforeunload,偶目前就只能优化到这,要是能把刷新从中区分出来那就更完美,仍求解中~