Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Проверка блокировки всплывающих окон

Исходный код этого примера:
<script type="text/javascript">
c=window.open("https://htmlweb.ru/java/ann.jpg","ad78gptfn2u5cqgpah34151","width=20,height=20,top=0,left=-50,toolbar=0,location=0,menubar=0,status=1,directories=0,resizable=1")
if(c){
  c.close(); // закрываю окно
  document.writeln("В вашем браузере разрешены всплывающие окна.");
}else{
  document.writeln("В вашем браузере запрещены всплывающие окна.");
  if(confirm("Внимание!\nВ вашем браузере отключены всплывающие окна.\n\nПродолжить работу с отключенными всплывающими окнами? ")){}
  // переход на версию без всплывающих окон
  //window.location.replace("a.php");
}
</script>

Альтернативный вариант обработки запрета всплывающийх окон

После загрузки страницы (например, по событию window.onload) замените метод window.open на свою функцию. Примерно так:

window.addEventListener('load', function load(event){ //добавляем наш инициализатор
window.removeEventListener('load', load, false); // убираем его после успешного запуска

function newopen(){ // инициализатор обертки
    var wopen = window.open; // сохраняем нативную функцию
    return function(){ // возвратит нашу обертку с нужным контекстом
        if (confirm('Всплывающее окно заблокировано. Показать его?')){
            wopen.apply(window, arguments); // вызываем нативную функцию с переданными параметрами
        };
    };
};

window.open = newopen(); // переопределяем нативную функцию на свою обертку
}, false);

Если всплывающее окно создается в iframe, то скрипт надо внутри iframe запускать.


.