Popup-Blocker von AdGuard ist ein Benutzerskript, das alle unerwünschten Popup-Fenster in verschiedenen Browsern blockiert.
Funktioniert in Chrome, Firefox, Edge, Safari, IE10+ usw., grundsätzlich in jedem Browser, der Userscript-Manager unterstützt. Ausnahmen bilden einige der ältesten Browser, die die von uns verwendete API nicht unterstützen. Das Skript ist dort möglicherweise nicht vollständig funktionsfähig.
Der Popup-Blocker wendet den Filterregelansatz nicht zur Popup-Erkennung an. Stattdessen wird den nativen APIs des Browsers, die zum Erstellen von Popups verwendet werden, eine zusätzliche Ebene hinzugefügt. Auf diese Weise können diese APIs nur aufgerufen werden, wenn dies durch eine manuelle Eingabe verursacht wird, und nicht durch Popup-/Popunder-Skripte. Dadurch können Popups sogar auf Websites blockiert werden, die versuchen, reguläre Werbeblocker zu umgehen, indem sie WebRTC verwenden oder die Werbeserver variieren.
Selbsterklärend, aber wichtig: Wenn ein Klick dazu führen würde, dass ein Pop-up angezeigt wird, wird nicht nur das Pop-up blockiert, sondern auch der erste Klick wird so verarbeitet, wie es ohne das Pop-up der Fall wäre.
Andere Skripte auf der Seite können die Verwendung des Popup-Blockers nicht erkennen, es sei denn, sie versuchen tatsächlich, ein Popup zu öffnen. Dies verhindert eine mögliche Umgehung des Popup-Blockers.
Aktuelle Release-Version : https://userscripts.adtidy.org/release/popup-blocker/2.5/popupblocker.user.js
Aktuelle Beta-Version: https://userscripts.adtidy.org/beta/popup-blocker/2.5/popupblocker.user.js
Der Popup-Blocker wird von demselben Team entwickelt, das auch AdGuard entwickelt, und AdGuard für Windows kann als Userscript-Manager dienen. Wenn Sie ein AdGuard-Benutzer sind, gehen Sie zu Einstellungen – Erweiterungen – Erweiterung hinzufügen und geben Sie dort die gewünschte URL der Popup-Blocker-.js-Datei ein. Auf diese Weise können Sie es in buchstäblich jedem Browser verwenden.
Andererseits ist Popup Blocker ein unabhängiges Projekt, Sie können es mit jedem anderen Userscript-Manager wie Greasemonkey, Tampermonkey oder Violentmonkey verwenden. Stellen Sie sicher, dass einer davon in Ihrem Browser installiert ist, um den Popup-Blocker verwenden zu können (geben Sie einfach die Skript-URL in die Adressleiste ein, sie wird vom Manager automatisch erkannt).
Sie können eine Liste der zugelassenen und stummgeschalteten Domänen auf einer speziellen Optionsseite verwalten:
Um einen Fehler zu melden, gehen Sie zu dieser Seite und erstellen Sie ein neues Problem.
Sie können uns bei der Übersetzung des Popup-Blockers in andere Sprachen helfen! Unser Projekt zu Crowdin ist offen für öffentliche Beiträge.
Entwicklungs-Builds verfügen über eine aktivierte Protokollierung und überschreiben deutlich mehr Browser-APIs, um das Verhalten von Popup-/Popunder-Skripts zu überprüfen. Es ist nicht für den normalen Gebrauch geeignet.
Der Unit-Test für den Entwickler-Build ist hier.
Um das Projekt zu erstellen, führen Sie die folgenden Schritte aus:
Installieren Sie lokale Abhängigkeiten, indem Sie den folgenden Befehl im Terminal ausführen:
yarn install
Führen Sie zum Erstellen den folgenden Befehl im Terminal aus:
$ NODE_ENV=<channel> ts-node tasks/builder --target=<target>
Ersetzen Sie channel
durch den gewünschten Kanal, der dev
, beta
oder release
sein kann. Ersetzen Sie außerdem target
durch das gewünschte Build-Ziel
userscript
– Userscript für einen bestimmten Kanal erstellen;options
– Erstellen Sie eine Optionsseite, bei der es sich um eine eigenständige Seite handelt, die dem Benutzer eine bequeme Möglichkeit bietet, zugelassene und gesperrte Websites zu verwalten.tests
– Tests erstellen;bundle
– Erstellen und bündeln Sie alle oben genannten Elemente für einen bestimmten Kanal.Alternativ können Sie die folgenden Befehle im minimalistischen Stil ausführen:
yarn userscript-<channel>
yarn options-page
yarn tests
yarn bundle:dev
yarn bundle:beta
yarn bundle:release
Wenn Sie für die Entwicklung erstellen, beachten Sie, dass die Ausgabe nicht minimiert wird und Protokolle in der Browserkonsole enthält.
Beta- und Release-Builds werden minimiert und alle Protokollierungscodes werden entfernt.
Erstellen Sie mithilfe der Optionsseite, gehen Sie mit dem Befehl cd
zum Build-Ordner und führen Sie den lokalen Server Ihrer Wahl aus
yarn options-page
Ändern Sie isOptionsPage
unter option-init.ts
um eine bestimmte Adresse und einen bestimmten Port zuzulassen. Stellen Sie anschließend sicher, dass das Userscript (z. B. in AG) auch diese Adresse und diesen Port enthält.
Um die Optionsseite anzuzeigen, stellen Sie sicher, dass AG Ihre Debug-Seite filtert.
Eine einfache Möglichkeit, das Skript zu testen, besteht darin, http://code.ptcong.com/better-js-popunder-script/ zu besuchen.
Klicken Sie einfach irgendwo auf dieser Seite, um ein Popunder zu erhalten, oder verwenden Sie bestimmte Links, um Popup/Popunder/Tabup usw. zu erhalten.
Erwartetes Verhalten: Neue Fenster werden mit einer Benachrichtigung in der oberen rechten Ecke blockiert.
Die Optionsseite wird über GitHub Pages mit den manuellen Aktionen Deploy popup blocker beta
und Deploy popup blocker release
für beta
bzw. release
Versionen bereitgestellt.