移除蝦皮廣告 (Remove Shopee Ads)

移除蝦皮廣告,移除那些容易誤點的廣告,避免使用者誤點商品。

Instali tiun ĉi skripton?
Author's suggested script

You may also like 蝦皮票券管理.

Instali tiun ĉi skripton
// ==UserScript==
// @name         移除蝦皮廣告 (Remove Shopee Ads)
// @version      1.4.0
// @description  移除蝦皮廣告,移除那些容易誤點的廣告,避免使用者誤點商品。
// @author       Danny H.
// @match        https://shopee.tw/*
// @match        https://shopee.vn/*
// @match        https://shopee.co.id/*
// @match        https://shopee.com.my/*
// @match        https://shopee.co.th/*
// @match        https://shopee.ph/*
// @match        https://shopee.sg/*
// @match        https://shopee.com.br/*
// @icon         https://freepngimg.com/save/109004-shopee-logo-free-transparent-image-hq/128x128
// @grant        GM_addStyle
// @license      MIT
// @require      https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
// @namespace    https://greasyfork.org/users/1166167
// ==/UserScript==

(function() {
    'use strict';

    function removeAds() {
        const $ads = $(':contains("AD"), :contains("Ad"), :contains("廣告")');
        $ads.each(function() {
            $(this).closest('.col-xs-2-4.shopee-search-item-result__item').hide();
            $(this).closest('.shopee_ic').hide();
            $(this).closest('.shopee_ic').parent().hide();
            $(this).closest('.Qnex0a').hide();
            $(this).closest('.QDF8HH.col-xs-2').hide();
            $(this).closest('.shopee-header-section.shopee-header-section--simple').hide();
        });
    }

    function initObserver() {
        const observer = new MutationObserver((mutations) => {
            mutations.forEach((mutation) => {
                if (mutation.type === 'childList') {
                    setTimeout(removeAds, 500);  // 每次 DOM 變化後延遲 500ms 執行
                }
            });
        });

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

    function onPageLoad() {
        setTimeout(() => {
            removeAds();
            initObserver();
        }, 500);  // 頁面加載完成後延遲 500ms 執行
    }

    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', onPageLoad);
    } else {
        onPageLoad();
    }

    // 應對網址變更
    window.addEventListener('locationchange', () => setTimeout(removeAds, 500));
})();