window.onbeforeunload应该为窗口关闭事件触发,不能用于其他事件,如返回,重新加载页面

时间:2013-12-12 09:20:04

标签: javascript jquery ajax onbeforeunload

我想只在浏览关闭时销毁会话。 我正在使用window.onbeforeunload函数,但它在下面的情况下触发:

    通过链接导航,表单提交或window.location功能
  1. 页面重定向
  2. F5或CTRL + F5按
  3. CTRL + R,CTRL + SHIFT + R按
  4. 点击浏览器的重新加载按钮
  5. 专注于URL输入框并按Enter
  6. 关闭浏览器时
  7. 我只想为第6个案例做一些事情(Make ajax call。)

    对于案例1,2,3,我的代码工作正常但我需要为案例4& 5。

    我的代码下面:

    var isOK = true;
            $(document).bind('keydown', function(e) {
                if (e.keyCode == 116){
                    isOK = false;
                }
                if (e.keyCode == 82 && e.ctrlKey) {
                    isOK = false;
                }
                if (e.keyCode == 82 && e.shiftKey && e.ctrlKey) {
                    isOK = false;
                }
            });
            window.onbeforeunload = function(event) {
                if(isOK)
                {
                    $.ajax({
                        url: "server.jsp",
                        type: "POST",
                        data: "KillSession"
                    });
                    alert("Your session is expired!!!");
                }else{
                    alert("onbeforeunload call!!! but ajax not call");
                }
            };
    

0 个答案:

没有答案