97 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// ==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','<div id="msg-remove" style="'+style+'"></div>');
 | 
						|
                    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);
 | 
						|
})(); |