Блокировщик всплывающих окон от AdGuard — это пользовательский скрипт, который блокирует все нежелательные всплывающие окна в разных браузерах.
Работает в Chrome, Firefox, Edge, Safari, IE10+ и т. д., практически в любом браузере, поддерживающем менеджеры пользовательских сценариев. Исключением являются некоторые самые старые браузеры, которые не поддерживают используемый нами API, в них скрипт может работать не полностью.
Блокировщик всплывающих окон не применяет правила фильтрации для обнаружения всплывающих окон. Вместо этого он добавляет дополнительный уровень поверх собственных API-интерфейсов браузера, которые используются для создания всплывающих окон. Таким образом, эти API можно вызывать только в случае ручного ввода, а не с помощью всплывающих окон или всплывающих сценариев. Это позволяет блокировать всплывающие окна даже на сайтах, которые пытаются обойти обычные блокировщики рекламы, используя WebRTC или меняя рекламные серверы.
Это понятно, но важно: если щелчок вызывает появление всплывающего окна, не только всплывающее окно блокируется, но и первоначальный щелчок обрабатывается так же, как и без всплывающего окна.
Другие сценарии на странице не могут обнаружить использование блокировщика всплывающих окон, кроме как путем фактической попытки открыть всплывающее окно. Это предотвращает любой возможный обход блокировщика всплывающих окон.
Текущая версия выпуска : https://userscripts.adtidy.org/release/popup-blocker/2.5/popupblocker.user.js.
Текущая бета-версия: https://userscripts.adtidy.org/beta/popup-blocker/2.5/popupblocker.user.js.
Блокировщик всплывающих окон разрабатывается той же командой, которая разрабатывает AdGuard, а AdGuard для Windows может служить менеджером пользовательских скриптов. Если вы являетесь пользователем AdGuard, перейдите в «Настройки» — «Расширения» — «Добавить расширение» и введите туда URL-адрес нужного .js-файла Блокировщика всплывающих окон. Таким образом, вы можете использовать его буквально в любом браузере.
С другой стороны, Popup Blocker — это независимый проект, вы можете использовать его с любым другим менеджером пользовательских скриптов, например Greasemonkey, Tampermonkey или Violentmonkey. Убедитесь, что один из них установлен в вашем браузере, чтобы иметь возможность использовать Блокировщик всплывающих окон (просто введите URL-адрес скрипта в адресную строку, он будет автоматически обнаружен менеджером).
Вы можете управлять списком разрешенных доменов и отключенным доменом на специальной странице параметров:
Чтобы сообщить об ошибке, перейдите на эту страницу и создайте новую проблему.
Вы можете помочь нам с переводом Блокировщика всплывающих окон на другие языки! Наш проект на Crowdin открыт для участия общественности.
В сборках для разработки включено ведение журналов, и они переопределяют значительно больше API браузера для анализа поведения скриптов всплывающих окон и попандеров. Он не подходит для обычного использования.
Юнит-тест для dev-сборки находится здесь.
Чтобы построить проект, выполните следующие действия:
Установите локальные зависимости, выполнив в терминале следующую команду:
yarn install
Для сборки выполните в терминале следующую команду:
$ NODE_ENV=<channel> ts-node tasks/builder --target=<target>
Замените channel
нужным каналом, который может быть dev
, beta
или release
. Кроме того, замените target
желаемой целью сборки, которую можно
userscript
– создать пользовательский скрипт для указанного канала;options
– страница параметров сборки, представляющая собой отдельную страницу, предоставляющую пользователю удобный способ управления разрешенными и отключенными веб-сайтами;tests
– тесты сборки;bundle
– собрать и связать все вышеперечисленное для указанного канала.Альтернативно вы можете запустить следующие команды в минималистичном стиле:
yarn userscript-<channel>
yarn options-page
yarn tests
yarn bundle:dev
yarn bundle:beta
yarn bundle:release
Если вы создаете проект для разработки, обратите внимание, что выходные данные не будут минимизированы и будут содержать журналы в консоли браузера.
Бета-версии и релизные сборки будут минимизированы, а все коды журналирования будут удалены.
Создайте, используя страницу параметров, перейдите в папку сборки с помощью команды cd
и запустите локальный сервер по вашему выбору.
yarn options-page
Измените isOptionsPage
в option-init.ts
чтобы разрешить определенный адрес и порт. После этого убедитесь, что пользовательский скрипт (например, в AG) тоже содержит этот адрес и порт.
Чтобы увидеть страницу параметров, убедитесь, что AG фильтрует вашу страницу отладки.
Самый простой способ протестировать скрипт — посетить http://code.ptcong.com/better-js-popunder-script/.
Просто щелкните в любом месте этой страницы, чтобы открыть всплывающее окно, или используйте специальные ссылки, чтобы открыть всплывающее окно/попандер/табуп/и т. д.
Ожидаемое поведение: новые окна блокируются с уведомлением в правом верхнем углу.
Страница параметров развертывается через GitHub Pages с ручными действиями Deploy popup blocker beta
и Deploy popup blocker release
для beta
и release
версии соответственно.