Furry34 Блокировщик рекламы

Блокирует агрессивную рекламу и редиректы на furry34.com

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Furry34 Ad Blocker
// @name:ru      Furry34 Блокировщик рекламы
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Blocks aggressive ads and redirects on furry34.com
// @description:ru  Блокирует агрессивную рекламу и редиректы на furry34.com
// @author       scody
// @license      MIT
// @match        *://*.furry34.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    console.log("Furry34 Ad Blocker started");

    const originalOpen = window.open;
    window.open = function(url) {
        if (url && !url.includes("furry34.com")) {
            console.log("Blocked window.open: " + url);
            return null;
        }
        return originalOpen.apply(this, arguments);
    };

    let currentLocation = window.location.href;
    Object.defineProperty(window, "location", {
        set: function(value) {
            if (value && !value.includes("furry34.com")) {
                console.log("Blocked redirect: " + value);
                return;
            }
            currentLocation = value;
            window.location.href = value;
        },
        get: function() {
            return { href: currentLocation };
        }
    });

    document.addEventListener("click", function(e) {
        const target = e.target.closest("a");
        if (target && target.href && !target.href.includes("furry34.com")) {
            console.log("Blocked click: " + target.href);
            e.preventDefault();
            e.stopPropagation();
        }
    }, true);

    function protectLinks() {
        document.querySelectorAll('a[href]').forEach(link => {
            const href = link.getAttribute('href');
            if (href && !href.includes('furry34.com') && !href.startsWith('#') && !href.startsWith('javascript:')) {
                link.addEventListener('click', function(e) {
                    console.log("Blocked link: " + this.href);
                    e.preventDefault();
                    e.stopPropagation();
                }, true);
            }
        });
    }

    const linkObserver = new MutationObserver(protectLinks);
    linkObserver.observe(document.body, { childList: true, subtree: true });
    protectLinks();

    console.log("Furry34 Ad Blocker ready");
})();