Adblocker with URL-based Detection

Block ads using URL pattern matching

2024-12-16 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         Adblocker with URL-based Detection
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Block ads using URL pattern matching
// @author       iewilmaestro
// @license      Copyright iewilmaestro
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Daftar URL atau pola URL yang sering digunakan untuk iklan
    const adUrls = [
        'ads',            // Mengandung kata 'ads' dalam URL (misalnya, 'example.com/ads')
        'doubleclick.net', // Iklan dari doubleclick.net
        'googlesyndication.com', // Iklan dari Google Adsense
        'adservice.google.com', // Iklan Google
        'amazon-adsystem.com',  // Iklan Amazon
        'pubmatic.com',  // Iklan PubMatic
        'cdn.bmcdn6.com'
        // Tambahkan pola URL lainnya jika perlu
    ];

    // Fungsi untuk menyembunyikan atau menghapus elemen iklan berdasarkan URL
    function hideAdsByUrl() {
        // Periksa iframe, img, dan elemen dengan src yang mengandung URL iklan
        const elementsToCheck = document.querySelectorAll('iframe, img, a, div');

        elementsToCheck.forEach(element => {
            let url = '';

            // Untuk iframe dan gambar, ambil URL dari atribut 'src'
            if (element.tagName === 'IFRAME' || element.tagName === 'IMG') {
                url = element.src;
            }
            // Untuk link (a) ambil URL dari atribut 'href'
            else if (element.tagName === 'A') {
                url = element.href;
            }

            // Jika URL mengandung pola iklan, sembunyikan atau hapus elemen
            if (url && adUrls.some(pattern => url.includes(pattern))) {
                element.style.display = 'none'; // Menyembunyikan elemen
                // element.remove(); // Bisa juga dihapus dari DOM jika diinginkan
            }
        });
    }

    // MutationObserver untuk memantau perubahan di DOM
    const observer = new MutationObserver(hideAdsByUrl);

    // Opsi observer: Memantau perubahan pada subtree dan atribut
    const config = {
        childList: true,
        subtree: true
    };

    // Mulai memantau perubahan pada body
    observer.observe(document.body, config);

    // Jalankan hideAdsByUrl pertama kali untuk menghapus iklan yang sudah ada saat halaman dimuat
    hideAdsByUrl();
})();