2010-04-18 9 views
6

Tengo un editor en javascript en mi página web y me gustaría preguntar al usuario si quiere abandonar la página, incluso si hay cambios no guardados.¿Cómo se muestra el diálogo antes de la descarga cuando corresponde?

Sé que puedo añadir el mensaje personalizado al "diálogo onbeforeunload" de esta manera:

window.onbeforeunload = function() { 
    return 'You have unsaved changes!'; 
} 

(Source) pero quiero mostrar el diálogo sólo cuando realmente hay algunos cambios que no haya guardado. ¿Como hacer eso?

Gracias!

Respuesta

8

se puede hacer algo como esto:

var unsavedChanges = false; 
window.onbeforeunload = function() { 
    if (unsavedChanges) return 'You have unsaved changes!'; 
} 

function makeSomeChange() { 
    // do some changes.... 
    unsavedChanges = true; 
} 

Puede asegurarse de cambiar unsavedChanges en los controladores de eventos 'cambio'.

+0

¡Funciona! Estaba devolviendo una cadena vacía en lugar de devolver nula o indefinida mientras escribía. ¡Gracias! –

Cuestiones relacionadas