Greasy Fork is available in English.

Adblocker with URL-based Detection

Block ads using URL pattern matching

  1. // ==UserScript==
  2. // @name Adblocker with URL-based Detection
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description Block ads using URL pattern matching
  6. // @author iewilmaestro
  7. // @license Copyright iewilmaestro
  8. // @match *://*/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Daftar URL atau pola URL yang sering digunakan untuk iklan
  16. const adUrls = [
  17. 'ads', // Mengandung kata 'ads' dalam URL (misalnya, 'example.com/ads')
  18. 'doubleclick.net', // Iklan dari doubleclick.net
  19. 'googlesyndication.com', // Iklan dari Google Adsense
  20. 'adservice.google.com', // Iklan Google
  21. 'amazon-adsystem.com', // Iklan Amazon
  22. 'pubmatic.com', // Iklan PubMatic
  23. 'cdn.bmcdn6.com'
  24. // Tambahkan pola URL lainnya jika perlu
  25. ];
  26.  
  27. // Fungsi untuk menyembunyikan atau menghapus elemen iklan berdasarkan URL
  28. function hideAdsByUrl() {
  29. // Periksa iframe, img, dan elemen dengan src yang mengandung URL iklan
  30. const elementsToCheck = document.querySelectorAll('iframe, img, a, div');
  31.  
  32. elementsToCheck.forEach(element => {
  33. let url = '';
  34.  
  35. // Untuk iframe dan gambar, ambil URL dari atribut 'src'
  36. if (element.tagName === 'IFRAME' || element.tagName === 'IMG') {
  37. url = element.src;
  38. }
  39. // Untuk link (a) ambil URL dari atribut 'href'
  40. else if (element.tagName === 'A') {
  41. url = element.href;
  42. }
  43.  
  44. // Jika URL mengandung pola iklan, sembunyikan atau hapus elemen
  45. if (url && adUrls.some(pattern => url.includes(pattern))) {
  46. element.style.display = 'none'; // Menyembunyikan elemen
  47. // element.remove(); // Bisa juga dihapus dari DOM jika diinginkan
  48. }
  49. });
  50. }
  51.  
  52. // MutationObserver untuk memantau perubahan di DOM
  53. const observer = new MutationObserver(hideAdsByUrl);
  54.  
  55. // Opsi observer: Memantau perubahan pada subtree dan atribut
  56. const config = {
  57. childList: true,
  58. subtree: true
  59. };
  60.  
  61. // Mulai memantau perubahan pada body
  62. observer.observe(document.body, config);
  63.  
  64. // Jalankan hideAdsByUrl pertama kali untuk menghapus iklan yang sudah ada saat halaman dimuat
  65. hideAdsByUrl();
  66. })();