Закрытие окна из программы

Закрыть окно из программы позволяет метод close() объекта окна. Эффект аналогичен нажатию пользователем кнопки Закрыть в заголовке окна. В листинге 2.1 мы как раз воспользовались этим методом, ведь заголовок окна отсутствует, а с ним отсутствует и кнопка Закрыть:

ipcMain.on('event-win-close', (e) => {
   if (win) win.close();
});

При попытке закрытия окна генерируются следующие события:

  • close — возникает перед закрытием окна с помощью кнопки Закрыть в заголовке окна или при вызове метода close(). Генерируется перед событиями beforeunload и unload из DOM;
  • closed — событие после закрытия окна.

В некоторых случаях нужно предотвратить закрытие окна. Например, если пользователь не сохранил данные. Для этого внутри обработчика события close следует вызвать метод preventDefault() через объект события:

let n = 0;
win.on('close', (e) => {
   if (n < 2) {
      e.preventDefault(); // Предотвращаем закрытие окна
   }
   n++;
});

Внутри обработчика события beforeunload можно присвоить любое значение, отличное от undefined, свойству returnValue объекта события:

let x = 0;
window.onbeforeunload = function(e) {
   if (x < 1) e.returnValue = false; // Предотвращаем закрытие окна
   x++;
};

Если при создании окна опции closable было присвоено значение false, то кнопка Закрыть в заголовке окна будет недоступна. Управлять опцией после создания объекта окна позволяют методы setClosable(true | false) и isClosable().

Учебник по Electron js
Учебник по Electron js в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов