浏览器关闭事件

时间:2013-12-17 12:33:35

标签: asp.net

当用户在没有注销的情况下直接关闭浏览器时,除了javascript之外还有其他选项可以触发Session_End()事件。如果我一直检查客户端是否向服务器发出请求,我认为当用户关闭浏览器时,服务器不会收到任何请求。那么如果有可能我该如何实现呢?此外,我是否可以随时检查用户是否正在查看我的任何页面,如果没有,我可以提出Session_End()事件吗?

2 个答案:

答案 0 :(得分:1)

,您无法检查用户正在做什么或何时关闭浏览器。 这显然违反了用户的用户和数据安全权利。此外,这样的功能将依赖于浏览器,因此很难实现,因为每个浏览器都有自己的接口和理念。

你可以做的是在javascript中实现一个函数,它每隔一分钟就会向你的服务器发送一个信号,告诉服务器用户仍处于活动状态。

然后,您可以存储用户最后一个信号的时间。这样,如果您在最后一分钟左右没有收到信号,就会看到用户处于非活动状态。

答案 1 :(得分:-1)

hii在javascript中有一个事件可以找到浏览器关闭事件。

但它不适用于所有浏览器。

他们就是榜样。

<HEAD>
   <TITLE> TEST</TITLE>

</HEAD>

<script type="text/javascript">

           javascript:window.history.forward(1);
           var temp = true;
           document.onkeydown = keyDownPress;
           document.onmousedown = keyDownPress;


    var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
            //alert(is_chrome);
    if(is_chrome){
                    window.onbeforeunload = function(e) {
                    //  confirmExit(e);
                    alert("1");
                    alert("2");
                    alert("3");

                        return "You are going to close?"; // you can make this dynamic, ofcourse...
                    }
        }else{

    window.onbeforeunload = confirmExit;
 }

           /*if (navigator.userAgent.indexOf('AppleWebKit') > -1)         window.onbeforeunload = confirmExit;
else Event.observe(window, 'beforeunload', confirmExit);*/
   /*
    var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

   if(is_chrome){
  window.onbeforeunload = function(e) {
   confirmExit(e);
   return "Are you sure you want to leave this page ?"; // you can make this                  dynamic, ofcourse...
     };}else{
     window.onbeforeunload  = confirmExit;
        }*/

         /* if (window.addEventListener) {  // all browsers except IE before version 9
            window.addEventListener ("beforeunload", OnBeforeUnLoad, false);
         }
         else {
           if (window.attachEvent) {   // IE before version 9
              window.attachEvent ("onbeforeunload", OnBeforeUnLoad);
           }
       }
      */




           /* function(e){
             if(temp==true ){
                     alert("You are going to close");
                //   return null;


            }
    };  */              

    function keyDownPress(e)
    {
            var evt = e || window.event;
            var keyPressed = evt.which || evt.keyCode;

            if (keyPressed==116) {
                    temp=false;
                    return false;
            }

            if(evt.button==2) {
                    alert("For security reasons, Right click has been disabled!");
                    return false;
            }
      }

      function confirmExit(e){

      //  alert("ok ok ");
             if(temp==true ){
                     alert("You are going to close");



           }
   }

这是代码在IE 8,Mozilla FF 8中正常工作 不适用于Google Chorme和FF 9