2010-04-18 6 views
6

J'ai un éditeur en javascript sur ma page Web et je voudrais demander à l'utilisateur s'il veut quitter la page même s'il y a des changements non enregistrés.Comment afficher la boîte de dialogue onbeforeunload le cas échéant?

Je sais que je peux ajouter un message personnalisé à la boîte de dialogue « onbeforeunload » de cette façon:

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

(Source) mais je veux afficher la boîte de dialogue que si il y a vraiment des modifications non enregistrées. Comment faire ça?

Merci!

Répondre

8

Vous pouvez faire quelque chose comme ceci:

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

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

Vous pouvez vous assurer de changer unsavedChanges dans les gestionnaires d'événements « de changement ».

+0

Cela fonctionne! Je retournais la chaîne vide au lieu de retourner null ou indéfini comme vous avez écrit. Je vous remercie! –

Questions connexes