// ==UserScript== // @name 百度广告去除 // @namespace http://ide.yumc.pw/ // @version 0.0.8 // @description 去除百度上下推广广告 // @author MiaoWoo // @include http*://*.baidu.* // @grant none // @namespace yumc // ==/UserScript== (function() { 'use strict'; var selectors = ` #content_left [style*="display:block !important;visibility:visible !important"] [tpl="right_toplist"] [class="c-gray c-feedback"] `; selectors = selectors.trim().split('\n'); var count = 0; function clearDom(dom){ if(dom.parentNode){ dom.parentNode.removeChild(dom); } } function showCount(cn){ if(cn>0){ count += cn; var content_right = document.querySelector('#content_right'); if(content_right){ content_right.style.position = 'relative'; var style = ` line-height: 42px; text-align: center; background: #0c0; color: #fff; margin-bottom:30px; `; var msgCount = document.querySelector('#msg-remove'); if(!msgCount){ content_right.insertAdjacentHTML('afterbegin','
'); msgCount = document.querySelector('#msg-remove'); } msgCount.innerHTML = `已过滤 ${count}条垃圾广告 本次过滤:${cn}条`; } } } function clearResult(){ var count = 0; selectors.forEach(function(selector) { var doms = document.querySelectorAll(selector); if(doms.length){ doms = Array.from(doms); count += doms.length; doms.forEach(dom => clearDom(dom)); } }); return count; } function clearByTag(){ var count = 0; var adKeyword = ['广告', '评价'] var classKeyWord = ['m', 'a span'] classKeyWord.forEach(function (c) { Array.from(document.getElementsByClassName(c)).forEach(function (element) { if (adKeyword.indexOf(element.innerText) > -1){ clearDom(element.parentNode.parentNode) count++ } }); }) return count; } function clearByClass(){ var count = 0; Array.from(document.getElementsByClassName('ad-block')).forEach(function (element) { clearDom(element.parentNode.parentNode.parentNode) count++ }) return count; } function clear() { var tempCount = 0 tempCount += clearResult(); tempCount += clearByTag(); tempCount += clearByClass(); showCount(tempCount); } //setTimeout(function(){clear();}, 500); setInterval(function(){clear();}, 500); })();