sip, y el window.event tampoco va a funcar en otro navegadr que no sea IE

2012/2/2 Leonardo Micheloni <[email protected]>

> te conviene usar jQuery para las llamadas Ajax, la implementación que
> copiaste no va a funcionar en todos los navegadores
>
> On Thu, Feb 2, 2012 at 1:38 PM, Pedro Wood <[email protected]> wrote:
>
>> 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 <[email protected]>
>>
>>> **
>>> 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 <[email protected]>
>>> *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 <[email protected]>
>>>> *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]
>>>>>
>>>>>
>>>>
>>>
>>
>
>
> --
> Leonardo Micheloni
> @leomicheloni
>
>

Responder a