Detectar cierre de ventana mediante javascript / jquery

Tengo el siguiente código:

            window.onunload=finalizar();
            function finalizar(){
                alert('finalizando');
                return;
            }

no funciona, lo he probado tambien con window.onbeforeunload y con window. Closed, con el mismo resultado, la función se ejecuta cuando se carga la página no cuando se cierra que es lo que quiero ... ¿alguna idea?

Tambien lo he probado dentro de <body> pero con el mismo resultado ...

¿Alguna otra manera de detectar cuando se cierra una ventana?

En un intento más, lo he probado con jquery pero no va ..., el tema es que con "onbeforeunload" salta un mensaje "automático" que no se puede controlar, tampoco quiero eso, simplemente quiero detectar cuando un usuario cierra la ventana mediante la crucecita del navegador, no mediante un botón que haya que crear en la página.

1 respuesta

Respuesta
2

En la siguiente página hay un hilo idéntico al que comentas:

http://stackoverflow.com/questions/20853142/trying-to-detect-browser-close-event 

Al parecer, utiliza el siguiente código y funciona (nosotros no lo hemos probado):

$(window).on('mouseover', (function () {
    window.onbeforeunload = null;
}));
$(window).on('mouseout', (function () {
    window.onbeforeunload = ConfirmLeave;
}));
function ConfirmLeave() {
    return "";
}
var prevKey="";
$(document).keydown(function (e) {            
    if (e.key=="F5") {
        window.onbeforeunload = ConfirmLeave;
    }
    else if (e.key.toUpperCase() == "W" && prevKey == "CONTROL") {                
        window.onbeforeunload = ConfirmLeave;   
    }
    else if (e.key.toUpperCase() == "R" && prevKey == "CONTROL") {
        window.onbeforeunload = ConfirmLeave;
    }
    else if (e.key.toUpperCase() == "F4" && (prevKey == "ALT" || prevKey == "CONTROL")) {
        window.onbeforeunload = ConfirmLeave;
    }
    prevKey = e.key.toUpperCase();
});

------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas