// ==UserScript== // @name 贴吧伪装广告清理 // @namespace hoothin // @version 0.3 // @description 清理ADB与ADP未能清理掉的百度贴吧列表伪装广告、帖内伪装广告与推荐应用广告 // @author hoothin // @match http*://tieba.baidu.com/* // @grant none // @run-at document-start // @supportURL http://www.hoothin.com // @downloadURL none // ==/UserScript== (function() { 'use strict'; var observer, option; var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; var tcss = ".j_encourage_entry{display: none !important;} .encourage_entry{display: none !important;}"; var snod = document.createElement('style'); snod.innerHTML = tcss; document.getElementsByTagName("head")[0].appendChild(snod); var content = document.querySelector("#content"); if(content){ observer = new MutationObserver(function(records){ delAD("#thread_list","LI"); }); option = { 'childList': true, 'subtree': true }; observer.observe(content, option); }else{ content=document.querySelector(".content"); if(!content)return; observer = new MutationObserver(function(records){ delAD("#j_p_postlist","DIV"); }); option = { 'childList': true, 'subtree': true }; observer.observe(content, option); } function delAD(a,b){ var threadList = document.querySelector(a); if(!threadList) return; var delList = []; for(let thread of threadList.childNodes){ if(thread.tagName == "STYLE"){ delList.push(thread); var previousSibling = thread.previousSibling; previousSibling = previousSibling.tagName == b?previousSibling:previousSibling.previousSibling; delList.push(previousSibling); }else if(thread.getAttribute && thread.getAttribute("data-isautoreply")){ delList.push(thread); } } for(let del of delList){ threadList.removeChild(del); } } })();