Swal.close()

Метод Swal.close() библиотеки SweetAlert предназначен для программного закрытия активного окна. Это позволяет разработчикам управлять жизненным циклом модальных окон, особенно в тех случаях, когда нужно завершить работу с предупреждениями или подтверждениями на веб-странице без участия пользователя.

Описание работы метода

Метод Swal.close() закрывает текущее активное окно модального уведомления, независимо от его типа или состояния. Это полезно, когда необходимо закрыть диалоговое окно программно, например, после выполнения какой-то асинхронной операции или по истечении определённого времени.

Когда вызывается Swal.close(), окно закрывается немедленно, и событие закрытия не блокирует дальнейшее выполнение кода. Это означает, что можно продолжать выполнение скрипта, не дожидаясь пользовательского взаимодействия с модальным окном.

Синтаксис

Swal.close();

Метод не требует аргументов и не возвращает значений. Он просто инициирует процесс закрытия активного модального окна.

Практическое применение

Закрытие модального окна после выполнения операции

Часто возникает ситуация, когда окно должно быть закрыто после завершения какого-либо процесса, например, после отправки формы на сервер или выполнения запроса. В таких случаях можно вызвать Swal.close() внутри функции, которая обрабатывает результат операции.

Пример:

// Функция для отправки данных на сервер
function sendData() {
  Swal.fire({
    title: 'Загрузка...',
    text: 'Ваши данные отправляются',
    showConfirmButton: false,
    allowOutsideClick: false,
    didOpen: () => {
      // Модальное окно будет отображаться до завершения отправки
    }
  });

  // Симуляция асинхронной операции
  setTimeout(() => {
    Swal.close(); // Закрытие модального окна по завершении операции
    Swal.fire('Данные отправлены', 'Ваши данные успешно отправлены на сервер.', 'success');
  }, 2000);
}

sendData();

В этом примере окно с сообщением “Загрузка…” будет отображаться в течение двух секунд, после чего оно будет закрыто и появится новое окно с сообщением об успешной отправке данных.

Использование с таймером

Метод Swal.close() также полезен в случае, если нужно закрыть окно автоматически через определённое время. Это может быть актуально для уведомлений, которые должны исчезнуть через несколько секунд после их отображения.

Пример:

Swal.fire({
  title: 'Оповещение',
  text: 'Это уведомление будет закрыто через 3 секунды',
  timer: 3000,
  willClose: () => {
    console.log('Окно закрыто');
  }
});

В этом примере окно будет автоматически закрыто через 3 секунды благодаря параметру timer, а метод willClose позволяет выполнить действие перед закрытием окна, например, вывести сообщение в консоль.

Взаимодействие с другими методами

Метод Swal.close() может быть использован в связке с другими методами библиотеки, такими как Swal.fire(), для динамического изменения поведения модальных окон.

Закрытие окна с подтверждением действия

В некоторых случаях может возникнуть необходимость закрыть окно только после того, как пользователь подтвердит какое-либо действие. В таких ситуациях можно использовать метод Swal.close() в комбинации с методами, работающими с пользовательским вводом.

Пример:

Swal.fire({
  title: 'Вы уверены?',
  text: 'Вы хотите закрыть окно?',
  icon: 'warning',
  showCancelButton: true,
  confirmButtonText: 'Да, закрыть',
  cancelButtonText: 'Нет'
}).then((result) => {
  if (result.isConfirmed) {
    Swal.close(); // Закрытие окна, если пользователь подтвердил действие
  }
});

Здесь модальное окно с подтверждением будет закрыто только в случае, если пользователь нажмёт кнопку “Да, закрыть”. Если пользователь отменит действие, окно останется открытым.

Ограничения и особенности

  • Метод Swal.close() работает только с активным модальным окном. Если на странице нет открытого окна, метод не оказывает никакого эффекта.
  • В случае использования параметра timer, метод Swal.close() вызовется автоматически по истечении времени, но также может быть вызван вручную для немедленного закрытия.
  • Swal.close() не отменяет дальнейшее выполнение кода, оно лишь закрывает окно, не влияя на другие части программы.

Заключение

Метод Swal.close() библиотеки SweetAlert предоставляет разработчикам простой и эффективный способ управления закрытием модальных окон. Он особенно полезен в асинхронных сценариях, когда необходимо программно завершить работу с уведомлением или диалоговым окном.