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 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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");
})();