Кратко
СкопированоМетод .close
объекта window
закрывает текущее или другое вызванное окно.
Пример
Скопированоconst openWindow = () => window.open('doka.guide/index.html');const closeWindow = (windowProxy) => windowProxy.close();const currentProxy = openWindow();closeWindow(currentProxy);
const openWindow = () => window.open('doka.guide/index.html'); const closeWindow = (windowProxy) => windowProxy.close(); const currentProxy = openWindow(); closeWindow(currentProxy);
Как пишется
СкопированоМожете вызвать метод, только если окно открыто через window
или это окно верхнего уровня без записей в истории.
Окно верхнего уровня — это основное окно браузера, которое было открыто пользователем вручную, например, обычная вкладка или окно приложения. Браузеры часто запрещают закрытие таких окон с помощью window
, если они не были открыты через window
.
Записи в истории — это информация о посещённых страницах, которая сохраняется в браузере. Записи в истории появляются у окна, когда в нём произошли переходы по страницам или окно было обновлено. Если в окне есть такие записи, браузер может ограничить его закрытие для обеспечения безопасности с помощью скрипта.
Ограничения
СкопированоМетод window
не закрывает окна, которые не были открыты через скрипт. Это ограничение связано с вопросами безопасности в браузерах: оно предотвращает закрытие окон, которые открыл пользователь.
В современных браузерах вызов window
в окне, которое не было открыто с помощью JavaScript, не сработает. Например, с помощью этого метода невозможно закрыть вкладку или главное окно (страницу).
Иногда метод window
не работает из-за настроек браузера, которые ограничивают или блокируют возможность программного закрытия окон.
Поддержка браузерами
СкопированоМетод window
поддерживается всеми современными браузерами. Работа метода зависит от того, как и в каком контексте открыто окно. Например, если окно открыто пользователем вручную, метод не сможет его закрыть из соображений информационной безопасности.
Подсказки
Скопировано💡 Используйте window
, когда и правда нужно закрыть окно. Пользователи в большинстве случаев не ожидают закрытия окон без их согласия.
💡 Убедитесь, что окно, которое пытаетесь закрыть, открыто с помощью скрипта. Если это не так, браузер проигнорирует вызов window
.