Lo probé (solo cambié la llamada ajax por un alert), solo funciona en IE y tanto al recargar la página, con click en el botón de refresh) como al hacer back o forward salta el alert también. No se invocó el unload cuando navegué a otra página ni cuando apreté F5 (en vez de hacer click en el botón).
Lo que hace distinto a este script no es que esté en la master page, sino que además del unload usa esto: ((window.event.clientY < 0) || (window.event.clientX < 0)) || ((window.screenTop > 10000) && (window.screenLeft > 10000)) ) { Saludos, Pedro 2012/2/2 Ing. Roxana Leituz <roxanalei...@yahoo.com.ar> > ** > 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 <pedro.w...@gmail.com> > *Sent:* Thursday, February 02, 2012 11:28 AM > *To:* puntonet@mug.org.ar > *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 <roxanalei...@yahoo.com.ar> > >> ** >> perdón.. si ésto se programa en la master no funciona como Andres >> necesita? >> >> >> *From:* Pedro Wood <pedro.w...@gmail.com> >> *Sent:* Thursday, February 02, 2012 10:01 AM >> *To:* puntonet@mug.org.ar >> *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 <andres.guzman...@gmail.com> >> >>> 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. >>> *andres.guzman...@gmail.com >>> >>> >> >