2010-04-18 18 views
6

Ich habe einen Editor in Javascript auf meiner Webseite und ich möchte den Benutzer fragen, ob er/sie die Seite verlassen möchte, auch wenn es noch ungespeicherte Änderungen gibt.Wie wird onbeforeloaddialog angezeigt, wenn dies angezeigt wird?

Ich weiß, ich kann benutzerdefinierte Nachricht an den „onbeforeunload Dialog“ diese Weise hinzufügen:

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

(Source), aber ich möchte nur den Dialog anzuzeigen, in dem es wirklich einige ungesicherte Änderungen sind. Wie geht das?

Danke!

Antwort

8

Sie können etwas tun:

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

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

Sie können sicherstellen, dass unsavedChanges in den 'Ändern' Event-Handler ändern.

+0

Es funktioniert! Ich habe eine leere Zeichenfolge zurückgegeben, anstatt null oder undefined zu schreiben. Vielen Dank! –