Как предложено в вопросе Как я могу обнаружить, если браузер блокирует всплывающее окно?window.open("https://example.com/", "_blank", "")
< /code>
можно использовать для определения того, было ли заблокировано всплывающее окно; Как указано в MDN < /p>
null возвращается, если браузер не может открыть новый контекст просмотра, например, потому что он был заблокирован всплывающим блокатором браузера. Делайте, когда ваш проект предназначен для производства. NOOPener предлагается в вопросе windows.open Но блокировать использование window.opener (2016) для решения проблемы безопасности.
Итак, как вы все еще можно определить, если всплывающее окно (например, открытие новой вкладки).window.open("https://example.com/", "_blank", "noopener")`
< /code>
Учитывая, что он всегда возвращает null < /code>?
(тестируется в Chrome и Firefox, год 2025) < /sub> < /p>
Документация MDN не охватывает этот случай, поэтому я боюсь, что это может быть ошибка /дизайн. Уточните ожидаемый вариант использования, для того, чтобы функциональность веб-приложения было типично, если какие-либо попытки перемещаться с пользователем на другую страницу/домен. Критические части пользовательского потока могут потребовать, чтобы разработчики справились с любой неудачей, отображая предупреждение пользователю и обучая их, как разрешить всплывающие окна для текущего сайта в их браузере. /> [*] Последний обновленный ответ в 2018 , принятый в: Как я могу обнаружить, блокирует ли браузер всплывающее окно? window.opener
обходной путь:
Этот ответ предполагает обходной путь, аналогичный тому, что в статье
(2023) также описывает:
Подробнее здесь: https://stackoverflow.com/questions/797 ... ing-window