当离开页面时对未保存内容保存(window.onunload与window.onbeforeunload)

离开页面或关闭浏览器时,这两个方法可以被执行。

1、onunload事件:

当用户关闭一个页面时触发 onunload 事件。

  1.关闭浏览器窗口

        2.通过地址栏或收藏夹前往其他页面的时候

        3.点击返回,前进,刷新,主页其中一个的时候  

        4.点击一个前往其他页面的url连接的时候

2、onbeforeunload事件:
事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。

       1.关闭浏览器窗口

        2.通过地址栏或收藏夹前往其他页面的时候

        3.点击返回,前进,刷新,主页其中一个的时候  

        4.点击一个前往其他页面的url连接的时候

2、两者区别:

onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。onbeforeunload也是在页面刷新或关闭时调用,onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。onunload是无法阻止页面的更新和关闭的,而 onbeforeunload 可以做到。

4.兼容性测试:

      1.onunload事件

 

 

 关闭页面跳转页面关闭浏览器刷新页面
谷歌支持支持支持支持
火狐不支持不支持不支持不支持
safari不支持支持不支持支持
opera支持支持支持支持

 

   2.onbeforeunload事件

 

 关闭页面跳转页面关闭浏览器刷新页面
谷歌支持支持支持支持
火狐不支持不支持不支持不支持
safari支持支持支持支持
opera支持支持支持支持

 

                 IE浏览器不支持onbeforeunload事件,会继续查找兼容方法

 

3.用法:

放在<script>脚本里面:

 window.onbeforeunload = unbeforeloadPage;

  function unbeforeloadPage() {
      localStorage.input = document.getElementById('input').value;
      alert("unbeforeload event detected!");
      $.ajax({
         url: '/test',
         type: 'POST',
         data:{value: document.getElementById('input').value},
         async : false,
         success:function(){},
         error:function(){}
      })
       return 'content is not save';
  }

      async : false 要加上,否则ajax不执行。

 

 

 2.

$(window).bind('beforeunload', function(){
     ....
     return '提示框上的文本'

}

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值