Как отобразить onbeforeunload диалоговое окно когда соответствующий?

У меня есть редактор в JavaScript на моей веб-странице, и я хотел бы спросить пользователя, если он хочет оставить страницу, даже если там не сохраняются изменения.

Я знаю, что могу добавить пользовательское сообщение к "onbeforeunload диалоговое окно" этот путь:

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

(Источник), но я хочу отобразить диалоговое окно только там, где действительно существуют некоторые несохраненные изменения. Как сделать это?

Спасибо!

6
задан Community 23 May 2017 в 11:45
поделиться

1 ответ

Вы можете сделать что-то вроде этого:

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

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

Убедитесь, что вы изменили unsavedChanges в обработчиках событий 'change'.

8
ответ дан 16 December 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: