2010-04-18 14 views
6

Mam edytora w javascript na mojej stronie internetowej i chciałbym zapytać użytkownika, czy chce opuścić stronę, nawet jeśli są niezapisane zmiany.Jak wyświetlić okno dialogowe onbeforeunload w razie potrzeby?

wiem, że można dodać niestandardowy komunikat do „dialogu onbeforeunload” ten sposób:

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

(Source) ale chcę, aby wyświetlić okno dialogowe tylko tam, gdzie naprawdę są jakieś niezapisane zmiany. Jak to zrobić?

Dzięki!

Odpowiedz

8

można zrobić coś takiego:

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

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

Można upewnić zmienić unsavedChanges w „zmiany” obsługi zdarzeń.

+0

Działa! Zwracałem pusty łańcuch zamiast zwracać wartość null lub undefined podczas pisania. Dziękuję Ci! –

Powiązane problemy