Blokowanie sponsorowanych na Facebooku

Blokowanie sponsorowanych postów na "Facebooku"

  1. // ==UserScript==
  2. // @name Blokowanie sponsorowanych na Facebooku
  3. // @author Kacper Pawlak
  4. // @include https://web.facebook.com/*
  5. // @version 1
  6. // @description Blokowanie sponsorowanych postów na "Facebooku"
  7. // @grant none
  8. // @namespace https://gf.qytechs.cn/users/9304
  9. // ==/UserScript==
  10. //thx https://gf.qytechs.cn/en/scripts/22417-facebook-block-more-sponsors
  11. var mutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  12. var streamSelector = 'div[id^="topnews_main_stream"]';
  13. var storySelector = 'div[id^="hyperfeed_story_id"]';
  14. navigator.sayswho = (function(){
  15. var ua= navigator.userAgent, tem,
  16. M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
  17. if(/trident/i.test(M[1])){
  18. tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
  19. return 'IE '+(tem[1] || '');
  20. }
  21. if(M[1]=== 'Chrome'){
  22. tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
  23. if(tem!== null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
  24. }
  25. M= M[2]? [M[1], M[2]]: [navigator.appName, '-?'];
  26. return M[0];
  27. })();
  28. var getClosest = function ( elem, selector ) {
  29. var firstChar = selector.charAt(0);
  30. var supports = 'classList' in document.documentElement;
  31. var attribute, value;
  32. for ( ; elem && elem !== document && elem.nodeType === 1; elem = elem.parentNode ) {
  33. if ( firstChar === '.' ) {
  34. if ( supports ) {
  35. if ( elem.classList.contains( selector.substr(1) ) ) {
  36. return elem;
  37. }
  38. } else {
  39. if ( new RegExp('(^|\\s)' + selector.substr(1) + '(\\s|$)').test( elem.className ) ) {
  40. return elem;
  41. }
  42. }
  43. }
  44. if ( elem.tagName.toLowerCase() === selector ) {
  45. return elem;
  46. }
  47. }
  48. return null;
  49. };
  50.  
  51. function process() {
  52. var stream = document.querySelector(streamSelector);
  53. if(!stream) {
  54. return;
  55. }
  56. var stories = stream.querySelectorAll(storySelector);
  57. if(!stories.length) {
  58. return;
  59. }
  60. if(navigator.sayswho == 'Firefox') {
  61. var as = document.querySelectorAll(":-moz-any(h6, h5) + div > span > a");
  62. } else {
  63. var as = document.querySelectorAll(":-webkit-any(h6, h5) + div > span > a");
  64. }
  65. for (var a of as) {
  66. if( (window.getComputedStyle(a, '::after').getPropertyValue('content') == '"Sponsorowane"') || a.innerHTML == 'Sponsorowane') {
  67. var closestElem = getClosest(a, '.userContentWrapper');
  68. var closestElem2 = getClosest(closestElem.parentNode, '.userContentWrapper');
  69. if(closestElem2){
  70. closestElem2.remove();
  71. } else {
  72. closestElem.remove();
  73. }
  74. }
  75. }
  76. }
  77.  
  78. var observer = new mutationObserver(process);
  79. observer.observe(document.querySelector('body'), {
  80. 'childList': true,
  81. 'subtree': true
  82. });

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址