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]