User Scripts
Posted: 19 Jul 2026, 10:24
Today's Outrage -- cookie banner notifications.
What a nuisance!
One of the most annoying "mandates" to ever come out of the EU.
Adopted in 2002, amended in 2009, enacted in 2011/2012.
Enough already! It's 14/15 **YEARS** later and we are still being PUNCHED IN THE FACE by these D@MN *nuisances*!
uBO's filters lists DO NOT block ALL of them !!!
I Still Don't Care About Cookies extension does NOT block ALL of them !!!
Everything I have tried in the past 14/15 years seems to do okay for the most part, but you still encounter these PIECES OF SH#T.
Enough already!
So it's time for a more generic approach and one FULLY controlled and editable by me, no more waiting for uBO filter lists not catching these to be updated but never updated to catch them ALL, no more waiting for extensions to be updated but never updated to catch them ALL.
Working so far!
// ==UserScript==
// @name - Auto Hide Cookie Banners
// @version 1.0.1
// @match *://*/*
// @grant none
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
// Common CSS selectors for cookie banners and consent popups
const selectors = [
'[id*="cookie"]',
'[class*="cookie"]',
'[id*="consent"]',
'[class*="consent"]',
'[aria-label*="cookie"]',
'[aria-label*="consent"]',
'div[role="dialog"]'
];
// Try to click reject/decline buttons if found
const rejectButtonTexts = [
'reject', 'decline', 'no thanks', 'opt out', 'refuse'
];
function removeCookieBanners() {
selectors.forEach(sel => {
document.querySelectorAll(sel).forEach(el => {
// Try to find and click reject buttons inside the banner
const btn = Array.from(el.querySelectorAll('button, a'))
.find(b => rejectButtonTexts.some(txt =>
b.textContent.trim().toLowerCase().includes(txt)
));
if (btn) {
btn.click();
console.log('[CookieBlocker] Clicked reject button:', btn.textContent.trim());
}
// Remove the banner from DOM
el.remove();
console.log('[CookieBlocker] Removed element:', sel);
});
});
}
// Run immediately and also observe for dynamically loaded banners
removeCookieBanners();
const observer = new MutationObserver(removeCookieBanners);
observer.observe(document.body, { childList: true, subtree: true });
})();
What a nuisance!
One of the most annoying "mandates" to ever come out of the EU.
Adopted in 2002, amended in 2009, enacted in 2011/2012.
Enough already! It's 14/15 **YEARS** later and we are still being PUNCHED IN THE FACE by these D@MN *nuisances*!
uBO's filters lists DO NOT block ALL of them !!!
I Still Don't Care About Cookies extension does NOT block ALL of them !!!
Everything I have tried in the past 14/15 years seems to do okay for the most part, but you still encounter these PIECES OF SH#T.
Enough already!
So it's time for a more generic approach and one FULLY controlled and editable by me, no more waiting for uBO filter lists not catching these to be updated but never updated to catch them ALL, no more waiting for extensions to be updated but never updated to catch them ALL.
Working so far!
// ==UserScript==
// @name - Auto Hide Cookie Banners
// @version 1.0.1
// @match *://*/*
// @grant none
// @run-at document-idle
// ==/UserScript==
(function () {
'use strict';
// Common CSS selectors for cookie banners and consent popups
const selectors = [
'[id*="cookie"]',
'[class*="cookie"]',
'[id*="consent"]',
'[class*="consent"]',
'[aria-label*="cookie"]',
'[aria-label*="consent"]',
'div[role="dialog"]'
];
// Try to click reject/decline buttons if found
const rejectButtonTexts = [
'reject', 'decline', 'no thanks', 'opt out', 'refuse'
];
function removeCookieBanners() {
selectors.forEach(sel => {
document.querySelectorAll(sel).forEach(el => {
// Try to find and click reject buttons inside the banner
const btn = Array.from(el.querySelectorAll('button, a'))
.find(b => rejectButtonTexts.some(txt =>
b.textContent.trim().toLowerCase().includes(txt)
));
if (btn) {
btn.click();
console.log('[CookieBlocker] Clicked reject button:', btn.textContent.trim());
}
// Remove the banner from DOM
el.remove();
console.log('[CookieBlocker] Removed element:', sel);
});
});
}
// Run immediately and also observe for dynamically loaded banners
removeCookieBanners();
const observer = new MutationObserver(removeCookieBanners);
observer.observe(document.body, { childList: true, subtree: true });
})();