Pixiv AdBlock

Block ads on Pixiv

// ==UserScript==
// @name         Pixiv AdBlock
// @name:en      Pixiv AdBlock
// @name:vi      Pixiv Chặn Quảng Cáo
// @name:zh-CN   Pixiv 广告屏蔽
// @name:zh-TW   Pixiv 廣告封鎖
// @name:ja      Pixiv 広告ブロック
// @namespace    http://tampermonkey.net/
// @version      0.4
// @description  Block ads on Pixiv
// @description:en  Block ads on Pixiv
// @description:vi  Chặn quảng cáo trên Pixiv
// @description:zh-CN  屏蔽 Pixiv 上的广告
// @description:zh-TW  封鎖 Pixiv 上的廣告
// @description:ja  Pixivの広告をブロックします
// @match        https://www.pixiv.net/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=pixiv.net
// @license      GPL-3.0-only
// @author       RenjiYuusei
// @grant        none
// @require      https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js
// ==/UserScript==
! function(t) {
    const o = [".ads", ".ad-container", ".billboard", ".ads-top-info", '[class*="ad-"]', '[class*="ads-"]', '[id*="ad-"]', '[id*="ads-"]', ".premium-lead-t", ".premium-lead-new-t", ".promotional-popup", ".ad-footer", ".ad-header", ".ad-sidebar", ".billboard-ad", ".js-premium-lead-header", ".js-premium-lead-footer", ".spotlight-ads", ".ad-interstitial", 'iframe[src*="ads"]', "div[data-ad-slot]", ".adsbygoogle", "#footer-ads", "#headerAd", ".ads-article-bottom", ".ads-article-top", ".ads-sidebar", ".advertisement", ".pixiv-ad", ".premium-promotion", "[data-gtm-recommend-ad]", '[data-gtm-value*="ad_"]'];

    function e() {
        t(o.join(", ")).remove(), t('img[src*="close_icon"][style*="position: absolute"]').each((function() {
            t(this).closest("div").remove()
        }))
    }! function() {
        const e = t("<style>").text(`\n            ${o.join(", ")},\n            img[src*="close_icon"][style*="position: absolute"] {\n                display: none !important;\n                visibility: hidden !important;\n                opacity: 0 !important;\n                pointer-events: none !important;\n                width: 0 !important;\n                height: 0 !important;\n                position: absolute !important;\n                top: -9999px !important;\n                left: -9999px !important;\n            }\n        `);
        t("head").append(e)
    }(), e();
    new MutationObserver((function(t) {
        let o = !1;
        t.forEach((function(t) {
            if (t.addedNodes.length) return o = !0, !1
        })), o && e()
    })).observe(document.body, {
        childList: !0,
        subtree: !0
    }), setInterval(e, 1e3), t(window).on("load", e), t(document).on("DOMContentLoaded", e), t(window).on("scroll", e)
}(jQuery);