hola!! estuve buscando.. y alguna vez me pasaron ésto y lo usé en una master y 
funcionaba muy bien, se disparaba al cerrar el navegador o al salir de la 
aplicación no al navegarla, no opino mucho porque no soy muy experta pero en su 
momento me solucionó el problema, 
saludos

/* en el header el script */


 <script type="text/javascript" language="javascript">
               var controlarVentana = true;
               function ComprobarSiCierran() {
                   if (controlarVentana) {
                       if (
((window.event.clientY < 0) || (window.event.clientX < 0))
||
((window.screenTop > 10000) && (window.screenLeft > 10000))
) {
                           MataSesion();
                       }
                   }
               }

               function MataSesion() {

                   document.body.style.cursor = "wait";

                   strRequest = 
"<Request><Method>MataSesion</Method></Request>";

                   xmlRequest = new 
ActiveXObject("Msxml2.FreeThreadedDOMDocument");
                   xmlRequest.loadXML(strRequest);
                   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                   xmlhttp.open("POST", "./PaginaControladora.aspx", false);

                   if (window.event != null) {
                       try {
                           if (
((window.event.clientY < 0) || (window.event.clientX < 0))
||
((window.screenTop > 10000) && (window.screenLeft > 10000))
) {
                               xmlhttp.send(xmlRequest);
                           }
                       }
                       catch (e) {
                           xmlhttp.send(xmlRequest);
                       }
                   }
                   document.body.style.cursor = "default";
               }

    </script> 


/* EN EL BODY */

<body onbeforeunload="ComprobarSiCierran();" onunload="ComprobarSiCierran();">
    <form id="form1" runat="server">
</form>
</body>

/* despues tenes que hacer la página controladora que en éste caso es 
PaginaControladora.aspx  */





From: Pedro Wood 
Sent: Thursday, February 02, 2012 11:28 AM
To: [email protected] 
Subject: [puntonet] Cerrar explorador


Hola Roxana, donde lo pongas no cambia, por más que esté en la master page (o 
en el Layout) se va a disparar cuando navegue a otra página (con click en back, 
o con click en 1 link) y no sólo en el caso de que cierre el navegador que es 
lo que quiere Andrés. 


Saludos,


Pedro




2012/2/2 Ing. Roxana Leituz <[email protected]>

  perdón.. si ésto se programa en la master no funciona como Andres necesita?



  From: Pedro Wood 
  Sent: Thursday, February 02, 2012 10:01 AM
  To: [email protected] 
  Subject: [puntonet] Cerrar explorador


  Hola Andrés, el evento es así, se dispara en cualquier caso en que se 
"descargue" la página actual: 


  The unload event is sent to the window element when the user navigates away 
from the page. This could mean one of many things. The user could have clicked 
on a link to leave the page, or typed in a new URL in the address bar. The 
forward and back buttons will trigger the event. Closing the browser window 
will cause the event to be triggered. Even a page reload will first create an 
unload event. 


  http://jqapi.com/#p=unload 


  No sé que es exactamente lo que estás tratando de hacer, por el nombre de la 
función que llamás pareciera que querés cerrar la sesión del usuario. Lo que 
podés tener es un botón/link de "cerrar sesión", y si el usuario en vez de 
utilizar eso directamente cierra el navegador, de todas formas va a perder la 
sesión cuando esta expire.


  Espero te sirva.
  Saludos,


  Pedro 



  2012/2/1 Andres Guzman <[email protected]>

    Estimados(as):

    Junto con saludarlos, les quisiera hacer una consulta, estoy tratando de 
que cuando mi cliente cierre el browser, antes de matar todas las sesiones 
ejecute un proceso de mi aplicacion, el problema es que esto no lo logro hacer 
ya que por el lado del cliente con JavaScript puedo detectar que el browser se 
cierra de la sgte forma.

<body onunload="CerrarExplorer();">
blablablablablabla      function CerrarExplorer() {
 
                if ((window.event.clientY < 0) || (window.event.clientX < -80)) 
{
                    $.ajax({
                    url: '<%:Url.Action("DesconectarUsuario", "Home") %>',
                    type: "post",
                    cache: false
                                        });
                }
        }ahora mi problema es que cuando Actualizo la página o presiono el 
boton atras o siguiente del navegador, tambien se ejecuta, alguien a podido 
hacer algo pero solo cuando se cierre el navegador. Algunos datos que les 
puedan servir, estoy trabajando con MVC2 framework 4

    Desde ya muchas gracias.

    -- 

    Saluda ATTE.
    Andrés Guzmán Oyaneder.
    [email protected]






Responder a