IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    onbeforeunload 在Firefox中的兼容问题

    安·记发表于 2012-04-25 07:45:37
    love 0

    最近项目中用到了onbeforeunload,遇到了平时一些比较少见的怪异情况,比如在上一篇文章有提到过的获取返回值问题:http://www.cssha.com/archives/209,然后马上又发现在firefox11中又存在着兼容问题:

    $(window).bind('beforeunload',function(){
            return '您的内容尚未保存,确定要离开本页吗?';
        });

    我用了JQuery,原生javascript也大同小异。问题来了,在Firefox中却没有显示以上的字符,只是显示默认的提示信息:

    因此,我们还需要加上对firefox的判断,并利用confirm来实现我们要的显示的信息。

    $(window).bind('beforeunload',function(){
          if ( /Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
              if(confirm('您的内容尚未保存,确定要离开本页吗?')){
                  history.go();
              } else{
                  window.setTimeout(function() { window.stop(); }, 1);
              }
          } else{
              return '您的内容尚未保存,确定要离开本页吗?';
          }
        });

    这样forefox与其他浏览器(ie chrome)上显示的信息就一致了。



沪ICP备19023445号-2号
友情链接