La Web del Programador: Comunidad de Programadores
 
    Pregunta:  38996 - COMO NO DEJAR CERRAR NAVEGADOR?
Autor:  Victor
Hola
Estoy tratando de impedir que el usuario cierre el navegador si no ha guardado los datos. Quisiera saber si es posible controlar el evento de cerrar la ventana y pedirle confirmacion.
He usado lo siguiente:

<BODY onbeforeunload="controla_salida();">
<script language="Javascript">
function controla_salida(){
event.returnValue = false;
</script>

Pero claro, tambien se activa al cambiar de pagina, enviar formularios etc..

Solo quiero que se dispare cuando se vaya a cerrar la ventana.

Gracias, un saludo.

  Respuesta:  Alfredo Sepúlveda
No se si entendí bien tu pregunta, pero una solución sencilla a tu problema sería si creas un "hidden" el cual solo recibiria un valor "x" si es que ya lleno los datos (o terminó su fase de validacion). Es decir, si tienes un boton que actua como "Guardar Datos", en la funcion que ejecute este boton supongo que están todas las validaciones que realizas, entonces al final de la funcion puedes darle un valor "x" al "hidden" lo que indica que ya se salvaron los datos. Entonces en tu función "controla_salida" si el "hidden está vacio significa que no ha salvado los datos lo cual llamará al event.returnvalue=false, en caso de que el hidden tenga información ya no es necesario llamar al event.returnvalue".

Espero haberte ayudado

Saludos