new delete jsoneditoronline ads

Remove the advertisement section of https://jsoneditoronline.org/.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         new delete jsoneditoronline ads
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description:en  Remove the advertisement section of https://jsoneditoronline.org/. (NEW)
// @description:zh  移除 jsoneditoronline.org 的新脚本。
// @author       lin
// @match        https://jsoneditoronline.org/
// @grant        none
// @license MIT
// @description Remove the advertisement section of https://jsoneditoronline.org/.
// ==/UserScript==

const forbiddenDomains = ['intergient.com', 'doubleclick.net', 'moatads.com'];

const originalAppend = HTMLHeadElement.prototype.appendChild;
HTMLHeadElement.prototype.appendChild = function(element) {
    if (element.tagName === 'SCRIPT' && element.src) {
        if (forbiddenDomains.some(domain => element.src.includes(domain))) {
            console.log(`[Blocked] Ad Script: ${element.src}`);
            return element;
        }
    }
    return originalAppend.apply(this, arguments);
};

(function() {
    'use strict';

    const AD_SELECTORS = ['.ad-panel', '.ad-margin'];

    const removeAds = () => {
        AD_SELECTORS.forEach(selector => {
            const elements = document.querySelectorAll(selector);
            elements.forEach(el => {
                el.remove();
                console.log(`[Cleaner] Removed: ${selector}`);
            });
        });
    };

    removeAds();

    const observer = new MutationObserver((mutations) => {
        removeAds();
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();