捕获页面关闭的事件onbeforeunload和onunload

前段时间有一需求是,希望用户点击关闭标签页或浏览器窗口时,弹出一提示信息,
之前都没做过这样的例子,然后又是百度一堆搜。。。
按照百度说法,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时,就不弹出提示框


对于表单提交等,可在提交前先把onbeforeunload设为null,如:

window.οnbefοreunlοad=null;
this.oForm.submit();

已测试,兼容ie7、8、9、ff、chrome

关于onbeforeunload,偶目前就只能优化到这,要是能把刷新从中区分出来那就更完美,仍求解中~


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值