您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Remove suggested/sponsored blocks from Facebook
当前为
// ==UserScript== // @name Facebook remove suggested sponsored ads blocks // @version 1.15.2 // @description Remove suggested/sponsored blocks from Facebook // @author Sly_North // @match https://www.facebook.com/* // @exclude https://www.facebook.com/privacy/* // @exclude https://www.facebook.com/settings/* // @exclude https://www.facebook.com/marketplace/* // @namespace https://gf.qytechs.cn/en/users/759669-sly-north // @license MIT // @grant none // @icon https://www.facebook.com/favicon.ico // ==/UserScript== console.log('Start RemoveAllSponsored'); // Rebuild texts that are scrambled, like "Sponsored" where each letter is in a different div, which are not present in the word letter order. function getVisibleContent(e) { var t = e.innerText.replaceAll("\n",""); var children = e.childNodes; while (children.length == 1) children = children[0].childNodes; var spanBottom = e.getBoundingClientRect().bottom; children = Array.from(children).filter((c) => c.getBoundingClientRect && c.getBoundingClientRect().top <= spanBottom); var a = []; for (var c of children) { var order = getComputedStyle(c).order; if (order && window.getComputedStyle(c).display !== 'none') { a[order] = c.innerText; // console.log(c.style.order,'=',c.innerText, ' y=',c.getBoundingClientRect().top,' vs span.bottom=', spanBottom); } } if (a.length == 0) a = t.split(); var intext = a.join().replaceAll(",","").replaceAll("\n",""); // if (a.length > 0) console.log('Array = ', intext, ' -OR- ', a.join().replaceAll(",","").replaceAll("\n","")); if (intext == "") intext = t; return intext; } function RemoveAllSponsored() { setTimeout(RemoveAllSponsored, 750); // TODO support more languages if there's interest. const keywords = [ /Sponsored/,/Commandvit/, /Sponsori/,/Reklamo/, /Publicid/,/Gesponser/, /Patrocinado/,/sugerisdos/, /贊助/, /RememberPassword/]; var nbrRemovedAds = 0; var nbrSuggestedRemoved = 0; if (document.URL.match(/facebook.com\/*(\?.*)*/)) { /* // New ads style - a <use> with a closed shadow-root we cannot inspect. var useNodes = Array.from(document.getElementsByTagName('use')) .filter((e) => {var br = e.getBoundingClientRect(); return br.bottom >= 0 && br.top <= window.innerHeight + 1000 && !e.style.display}); for (let e of useNodes) { let w = e.getBoundingClientRect().width; if (w == 0) continue; if (w > 62 && w < 66) { // TODO: find a more robust way of identifying the ads <use...> items. let parent = e.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement .parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement; while (parent) { let h = parent.getBoundingClientRect().height; if (h > 100) break; parent = parent.parentElement; } if (parent.parentElement.innerText.match(/your memories/)) continue; if (parent.style.maxHeight) continue; parent.style.maxHeight = "0px"; console.log('- Removing new style ads - w=', w, ': ', parent.innerText.replaceAll("\n", " ").substring(0, 200)); ++nbrRemovedAds; } } /**/ } // Old Style var elts = Array.from(document.getElementsByTagName('span')); elts = elts.filter((e) => {var br = e.getBoundingClientRect(); return br.bottom >= 0 && br.top <= window.innerHeight + 1000 && !e.style.display}); var nbrSpans = elts.length; for (var i = elts.length - 1; i >= 0; --i) { var e = elts[i]; var boundingRect = e.getBoundingClientRect(); if (boundingRect.width == 0 || boundingRect.height == 0) continue; // Not visible var t = e.innerText; if (t === 'Suggested for you' || t === 'Remember Password' || t === 'Reels and short videos' || t === 'Suggested for you') { let parent = e.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement; parent.style.display = "none"; e.style.display = "none"; console.log('- Removing suggestion: ', parent.innerText.replaceAll("\n", " ").substring(0, 200)); ++nbrSuggestedRemoved; } if (e.parentElement.tagName != 'SPAN') { continue; } var intext = getVisibleContent(e); if (intext.length > 0) for (k of keywords) { if (intext.match(k)) { let parent = e.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement .parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement; parent.style.display = "none"; e.style.display = "none"; ++nbrRemovedAds; console.log('- Removing ads span', i, '[', parent.innerText.replaceAll("\n", " ").substring(0, 200), '] matching ', k, ' at ', intext); break; } } } } setTimeout(RemoveAllSponsored, 500);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址