- Я делаю письменное выражение. Пользователи могут открыть приложение, написать текст, сохранить свою работу и т.д.
- Я пытаюсь сделать так, чтобы при нажатии кнопки
window close
пользователю предлагалось (а) сохранить свою работу (при необходимости) или (б) просто выйти. - Я пытаюсь использовать
window.beforeunload
для достижения этой цели, но обнаруживаю, что застреваю в цикле, где при попытке "выйти" появляется одно и то же приглашение до бесконечности.
Вот некоторый код:
windowCloseCheck() {
window.onbeforeunload = function(e) {
e.returnValue = false;
// window.alert('try to close me');
if(file.isUnsaved() || file.hasChanged()) {
// prompt - save or just quit?
file.fileWarning('You have unsaveeed work.', 'Save', 'Quit', function(){
// OPTION A - save
file.save();
}, function() {
// OPTION B: Quit.
ipcRenderer.send('quitter')
})
}
else {
// file is saved and no new work has been done:
ipcRenderer.send('quitter')
}
windowCloseCheck
вызывается при настройке приложения, инициируя прослушиватель событий для закрытия окна. Мое условие проверяет, является ли файл несохраненным или изменился с оригинала.
fileWarning
- это функция, которая просто оборачивает электронное диалоговое окно, в результате чего появляется всплывающее окно с двумя вариантами и соответствующими функциями для вызова для каждого варианта.
Остальная часть кода доступна, если я (возможно) опускаю необходимую информацию. Был бы рад уточнить, если я не очень ясно.