Skip to content

Instantly share code, notes, and snippets.

@adrianiainlam
Last active November 9, 2022 22:34
Embed
What would you like to do?
// ==UserScript==
// @name Hide Ads on Facebook
// @namespace https://tampermonkey.net/
// @version 1.27.17
// @description Hide sponsored feeds on Facebook
// @author KudoAmine edited by A I Lam
// @downloadURL https://gist.github.com/adrianiainlam/75ea1f92b763f4c1c6297157591f0d56/raw/hide-fb-ads.user.js
// @updateURL https://gist.github.com/adrianiainlam/75ea1f92b763f4c1c6297157591f0d56/raw/hide-fb-ads.user.js
// @match https://www.facebook.com/*
// @license MIT
// @grant none
// ==/UserScript==
const HideAds = () => {
var feeds = document.querySelectorAll("div[role=feed] > *:not([data-hide-ads-on-facebook-checked=true])");
if (feeds.length == 0) {
feeds = document.querySelectorAll("#ssrb_feed_start ~ div > div > div:not([data-hide-ads-on-facebook-checked=true])");
}
if (feeds.length == 0) {
feeds = document.querySelectorAll("#ssrb_feed_start ~ div h3 ~ div > div:not([data-hide-ads-on-facebook-checked=true])");
}
if (feeds.length == 0) {
var h3 = Array.from(document.querySelectorAll("h3")).filter(x => x.innerText == "News Feed posts")[0];
feeds = Array.from(Array.from(h3.parentElement.children).filter(x => x.tagName == "DIV")[0].children).filter(x => x.getAttribute("data-hide-ads-on-facebook-checked") === null);
}
for (let feed of feeds) {
if (feed.style.display != "none") {
for (let anchor of feed.getElementsByTagName("a")) {
if (anchor.innerText == "Sponsored" || anchor.href.indexOf("facebook.com/ads/") >= 0) {
feed.style.display = "none";
return;
}
const flexboxes = anchor.querySelectorAll("*[style*='display: flex']");
for (let box of flexboxes) {
const text = Array.from(box.childNodes)
.filter(x => getComputedStyle(x).display != "none" && parseFloat(getComputedStyle(x).top) < 1)
.sort((a, b) => getComputedStyle(a).order - getComputedStyle(b).order)
.map(x => x.innerText.trim())
.join("");
if (text == "Sponsored") {
feed.style.display = "none";
return;
}
}
const svguses = anchor.querySelectorAll("svg > use");
for (let svguse of svguses) {
const id = svguse.href.baseVal;
if (document.querySelector(id).innerHTML == "Sponsored") {
feed.style.display = "none";
return;
}
}
}
for (let div of feed.getElementsByTagName("div")) {
if (div.innerText.startsWith("Sponsored · Paid for by")) {
feed.style.display = "none";
return;
}
}
}
feed.setAttribute("data-hide-ads-on-facebook-checked", "true");
}
};
HideAds();
setTimeout(HideAds, 1000);
(function () {
window.addEventListener("scroll", () => {
HideAds();
setTimeout(HideAds, 1000);
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment