La idea es advertir al usuario si inició una acción, como el ingreso de datos en un form, he intenta abandonar la página sin haberlos procesados, si no no pasa de ser un mensaje molesto. Por lo que habría que crear una condición, este ejemplo a lo mejor te oriente para buscar una solución
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript"> //<![CDATA[
var datosSinProcesar ;
window.onbeforeunload = Salir;
function Salir(){
if (datosSinProcesar == 1) {
return "Si has hecho algun cambio sin guardar se perderan todos los datos.";
}
}
function deja_var(a){
if(a == 'si'){
datosSinProcesar = 1;
}else{
datosSinProcesar = 0;
}
}
//]]>
<form action="#" onsubmit="return deja_var('no');"> <input type="text" onkeypress="deja_var('si');" value="" />
Puede mejorarse controlando los valores de los campos. Pero basicamente la idea sería esa. Saludos