Discussions » Greasy Fork Feedback
how do i upload a userscript
There you go: click at me!.
// ==UserScript==
// @name Enhanced Ad Blocker
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Block ads on websites, including bunkr.fi
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const adSelectors = [
'.ad', '.ads', '.adsbygoogle', '#ad', '#ads',
'[class*="ad-"]', '[id*="ad-"]',
'[class*="advertisement"]', '[id*="advertisement"]',
// Add more generic ad selectors
'[class*="banner"]', '[id*="banner"]',
'[class*="sponsor"]', '[id*="sponsor"]',
// Add specific selectors for bunkr.fi (you may need to adjust these)
'.bunkr-ad', '#bunkr-ad-container',
'[class*="bunkr-ad"]', '[id*="bunkr-ad"]'
];
function removeAds() {
adSelectors.forEach(selector => {
const elements = document.querySelectorAll(selector);
elements.forEach(element => {
element.style.display = 'none';
});
});
// Remove iframe-based ads
const iframes = document.getElementsByTagName('iframe');
for (let i = 0; i < iframes.length; i++) {
if (iframes[i].src.includes('ad') || iframes[i].src.includes('banner')) {
iframes[i].style.display = 'none';
}
}
// Remove script-injected ads
const scripts = document.getElementsByTagName('script');
for (let i = 0; i < scripts.length; i++) {
if (scripts[i].src.includes('ad') || scripts[i].src.includes('analytics')) {
scripts[i].remove();
}
}
}
// Run removeAds on page load
removeAds();
// Create a MutationObserver to watch for dynamically added content
const observer = new MutationObserver(removeAds);
observer.observe(document.body, { childList: true, subtree: true });
// Additional check for delayed ad loading
setTimeout(removeAds, 2000);
})();
// ==UserScript==
// @name Enhanced Ad Blocker
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Block ads on websites, including bunkr.fi
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const adSelectors = [
'.ad', '.ads', '.adsbygoogle', '#ad', '#ads',
'[class*="ad-"]', '[id*="ad-"]',
'[class*="advertisement"]', '[id*="advertisement"]',
// Add more generic ad selectors
'[class*="banner"]', '[id*="banner"]',
'[class*="sponsor"]', '[id*="sponsor"]',
// Add specific selectors for bunkr.fi (you may need to adjust these)
'.bunkr-ad', '#bunkr-ad-container',
'[class*="bunkr-ad"]', '[id*="bunkr-ad"]'
];
function removeAds() {
adSelectors.forEach(selector => {
const elements = document.querySelectorAll(selector);
elements.forEach(element => {
element.style.display = 'none';
});
});
// Remove iframe-based ads
const iframes = document.getElementsByTagName('iframe');
for (let i = 0; i < iframes.length; i++) {
if (iframes[i].src.includes('ad') || iframes[i].src.includes('banner')) {
iframes[i].style.display = 'none';
}
}
// Remove script-injected ads
const scripts = document.getElementsByTagName('script');
for (let i = 0; i < scripts.length; i++) {
if (scripts[i].src.includes('ad') || scripts[i].src.includes('analytics')) {
scripts[i].remove();
}
}
}
// Run removeAds on page load
removeAds();
// Create a MutationObserver to watch for dynamically added content
const observer = new MutationObserver(removeAds);
observer.observe(document.body, { childList: true, subtree: true });
// Additional check for delayed ad loading
setTimeout(removeAds, 2000);
})();
like genuinely how ive been looking around for at least 25 seconds