美文网首页
监听浏览器关闭事件

监听浏览器关闭事件

作者: __凌 | 来源:发表于2017-11-06 10:41 被阅读0次

    # 1: 监听浏览器关闭事件  ---  后台删用户登录信息    ---   IE不可用


    .jsp :

    var _beforeUnload_time = 0, _gap_time = 0;

    var is_fireFox = navigator.userAgent.indexOf("Firefox")>-1;//是否是火狐浏览器

    window.onunload = function (){

    _gap_time = new Date().getTime() - _beforeUnload_time;

    if(_gap_time <= 5)

         $.post("webLoginController.do?delSession",function(){});  //浏览器关闭

    //  else

        //$.post("webLoginController.do?delSession",function(){});  //浏览器刷新

    }

    window.onbeforeunload = function (){

       _beforeUnload_time = new Date().getTime();

       if(is_fireFox)//火狐关闭执行

            $.post("webLoginController.do?delSession",function(){});

    };

    .java :

    @RequestMapping(params = "delSession")

      public void delSession(HttpSession session) {

       boolean isTrue = false;

       String userId = session.getAttribute("userId").toString();

       if (userId != null && !userId.equals("")) {

          isTrue = webLoginService.deleteOnline(userId);

       } else {

        isTrue = false;

    }

    session.invalidate();

    }


    # 2 : IE可用  ---  谷歌不可用【控制台报错】


    window.onbeforeunload=function(){

       alert( "您确定退出吗?");

    }


    # 3 : IE 谷歌 可用


    window.onbeforeunload=function(){

       return "您确定退出吗?";

    }


    页面加载时只执行onload

    页面关闭时只执行onunload

    页面刷新时先执行onbeforeunload,然后onunload,最后onload。

    前辈的结论是:

    //对于ie,谷歌,360:

    --  页面加载时只执行onload

    --  页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件。

    -- 页面关闭时,先onbeforeunload事件,再onunload事件。

    //对于火狐:

    -- 页面刷新时,只执行onunload;

    -- 页面关闭时,只执行onbeforeunload事件

    相关文章

      网友评论

          本文标题:监听浏览器关闭事件

          本文链接:https://www.haomeiwen.com/subject/llikmxtx.html