Метод 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 предоставляет
разработчикам простой и эффективный способ управления закрытием
модальных окон. Он особенно полезен в асинхронных сценариях, когда
необходимо программно завершить работу с уведомлением или диалоговым
окном.