HuffingtonPost.it: Hide the "Using AdBlock" popup

This script hides the "Using AdBlock" popup that is shown when you use an ad-block.

当前为 2025-04-26 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name           HuffingtonPost.it: Hide the "Using AdBlock" popup
// @name:it        HuffingtonPost.it: Nasconde il popup "AdBlock In Uso"
// @description    This script hides the "Using AdBlock" popup that is shown when you use an ad-block.
// @description:it Questo script nasconde il popup "AdBlock In Uso" che viene visualizzato quando si usa un ad-block.
// @match          https://*.huffingtonpost.it/*
// @grant          none
//// @run-at         document-start
// @version        1.0.4
// @author         Cyrano68
// @license        MIT
// @namespace https://greasyfork.org/users/788550
// ==/UserScript==

(function()
{
    "use strict";

    function console_log(text)
    {
        const dateNow = new Date();
        //let now = dateNow.toISOString();
        let now = dateNow.toLocaleString() + "." + dateNow.getMilliseconds();
        console.log(`${now} ${text}`);
    }

    var myVersion = GM_info.script.version;
    console_log(`==> HuffingtonPost_it_HideAdBlockPopup: HELLO! Loading script (version: ${myVersion})...`);

    document.addEventListener("DOMContentLoaded", onDOMContentLoaded);
    window.addEventListener("load", onWindowLoaded);

    createMutationObserver();

    function onDOMContentLoaded()
    {
        console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onDOMContentLoaded - document.readyState=${document.readyState}`);
        // DO NOTHING!
    }

    function onWindowLoaded()
    {
        console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onWindowLoaded - document.readyState=${document.readyState}`);
        // DO NOTHING!
    }

    function onMutationList(mutationList, observer)
    {
        //console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - mutationList.length=${mutationList.length}`);
        mutationList.forEach((mutation, i) =>
        {
            //console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - mutation[${i}] - mutation.type=${mutation.type}`);
            if (mutation.type === "childList")
            {
                let addedNodes = mutation.addedNodes;
                if (addedNodes.length > 0)
                {
                    //console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - mutation[${i}] - addedNodes.length=${addedNodes.length}`);
                    addedNodes.forEach((addedNode, j) =>
                    {
                        let searchedDiv = searchVisibleNode(addedNode, "div.fc-dialog-container");
                        if (searchedDiv !== null)
                        {
                            //console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - searchedDiv.outerHTML='${searchedDiv.outerHTML}'`);

                            let parentElement = searchedDiv.parentElement;
                            console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - parentElement: tagName='${parentElement.tagName}' id='${parentElement.id}'`);

                            searchedDiv.style.display = "none";  // Hide node.
                            document.body.style.overflowY = "scroll";  // Show vertical scrollbar.
                            searchedDiv.remove();  // Remove node. IMPORTANT: Without this instruction the script does NOT work properly.
                            console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - 'fc-dialog-container' - mutation[${i}], addedNode[${j}] - searchedDiv.tagName='${searchedDiv.tagName}', searchedDiv.classList='${searchedDiv.classList}' ---> HIDDEN/REMOVED`);
                        }

                        let searchedDiv2 = searchVisibleNode(addedNode, "div#iubenda-cs-banner");
                        if (searchedDiv2 !== null)
                        {
                            //console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - searchedDiv2.outerHTML='${searchedDiv2.outerHTML}'`);

                            let parentElement = searchedDiv2.parentElement;
                            console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - parentElement: tagName='${parentElement.tagName}' id='${parentElement.id}'`);

                            searchedDiv2.style.display = "none";  // Hide node.
                            document.body.style.overflowY = "scroll";  // Show vertical scrollbar.
                            searchedDiv2.remove();  // Remove node. IMPORTANT: Without this instruction the script does NOT work properly.
                            console_log(`==> HuffingtonPost_it_HideAdBlockPopup: onMutationList - 'iubenda-cs-banner' - mutation[${i}], addedNode[${j}] - searchedDiv2.tagName='${searchedDiv2.tagName}', searchedDiv2.classList='${searchedDiv2.classList}' ---> HIDDEN/REMOVED`);
                        }
                    });
                }
            }
        });
    }

    function searchVisibleNode(node, selector)
    {
        let parentElement = node.parentElement;
        return (parentElement === null ? null : parentElement.querySelector(`${selector}:not([style*=\"display:none\"]):not([style*=\"display: none\"])`));
    }

    function createMutationObserver()
    {
        console_log("==> HuffingtonPost_it_HideAdBlockPopup: createMutationObserver");

        // SEE: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
        const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

        // Create an observer instance linked to the callback function.
        const observer = new MutationObserver(onMutationList);

        // Options for the observer (which mutations to observe).
        const config = {subtree: true, childList: true};

        // Start observing the target node for configured mutations.
        observer.observe(document, config);
    }

    console_log("==> HuffingtonPost_it_HideAdBlockPopup: Script loaded");
})();