【广告去除】百度百科

去除秒懂百科、去除页面底部的广告、去除右侧广告和TA说等;去除置灰默哀效果

目前为 2023-08-14 提交的版本。查看 最新版本

// ==UserScript==
// @name         【广告去除】百度百科
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  去除秒懂百科、去除页面底部的广告、去除右侧广告和TA说等;去除置灰默哀效果
// @author       You
// @match        *://baike.baidu.com/
// @match        *://baike.baidu.com/item/*
// @match        *://baike.baidu.com/search/*
// @match        *://baike.baidu.com/usercenter/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=qq.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';
    var url = window.location.href;
    var namesStyle = [];
    var namesStyleText = [];
    var namesId = [];
    var namesClass = [];


    if (url.includes('baike.baidu.com/item')) {
        console.log('[广告去除] 百度百科词条');
        namesStyle = [

        ];
        namesStyleText = [

        ];
        namesId = [
            'hotspotmining_s',//概述下方TA说&新闻


        ];
        namesClass = [
            'second-wrapper',//词条名下方秒懂视频
            'poster-middle',//影视大图左下秒懂视频
            'related-video-container J-related-video-container',//信息栏下方秒懂视频
            'lemmaWgt-promotion-slide',//右侧秒懂百科贴图广告

            'add-video cmn-btn-hover-blue cmn-btn-28 J-add-video-link J-add-video',//上传视频按键
            'edit-prompt',//词条名下方编辑提示,例:本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

            'unionAd union',//右侧列表广告
            'new-bdsharebuttonbox new-side-share',//右侧悬浮分享

            'bottom-recommend-wrapper',//底部猜你喜欢
            'fc-guess-like new-list',//底部相关搜索
            //'after-content',//底部所有,可能会误伤
            //'contentBottom_HLLJs',记不起来是什么的

            //'clearfix',//概述下方TA说&新闻,有误伤
            'tashuo-right',//右侧TA说
            'tashuo-bottom',//页面底部TA说
            //form-item clearfix

            'topA',//顶部搜索栏右侧活动入口
            'pinzhuanWrap',//页面底部品牌广告

            'item appdownload',//顶部“下载百科APP”

            'lemma-structured',//概述下方相关星图
            'graph-card',//信息栏下方百科图谱
        ];
    }
    else if (url.includes('baike.baidu.com/search')) {
        console.log('[广告去除] 百度百科搜索');
        namesStyle = [

        ];
        namesStyleText = [

        ];
        namesId = [

        ];
        namesClass = [
            'J-search-ad',//搜索结果页广告,例:fc-054d5b35ad1f2c7a J-search-ad
            'ad-container J-search-result-ad',//搜索结果页广告单个
        ];
    }
    else {
        console.log('[广告去除] 百度百科其他');
        namesStyle = [

        ];
        namesStyleText = [

        ];
        namesId = [

        ];
        namesClass = [
            'navbarAdNew',//主页顶部搜索栏右侧活动入口
            'wgt-baikeapp-promote-container',//主页右下角下载APP悬浮窗
        ];
    }

    //*************************************************************************************
    //----------------------------------------广告去除函数
    //*************************************************************************************
    function delAd(tagType,names) {
        //console.log("tagType:"+tagType);
        //console.log("names.length:"+names.length);
        if (names.length) {
            var flag = false;

            for (var name of names) {
                //console.log("name:"+name);
                var elements = [];
                switch (tagType) {
                    case 'style':
                        elements = document.querySelectorAll(`[${name}]`);
                        break;
                    case 'styleText':
                        //需要匹配标签style的内容
                        elements = document.querySelectorAll('[style*="' + name + '"]');


                        break;
                    case 'id':
                        //elements.push(document.getElementById(name));
                        if (name instanceof RegExp) {
                            elements = document.querySelectorAll('[id]');
                            elements = Array.prototype.filter.call(elements, function(element) {
                                return name.test(element.id);
                            });
                        } else {
                            elements = document.querySelectorAll(`[id="${name}"]`);
                        }
                        //console.log("idelements:"+elements);
                        break;
                    case 'class':
                        //elements = document.getElementsByClassName(name);
                        if (name instanceof RegExp) {
                            elements = document.querySelectorAll('[class]');
                            elements = Array.prototype.filter.call(elements, function(element) {
                                return name.test(element.className);
                            });
                        } else {
                            elements = document.querySelectorAll(`[class="${name}"]`);
                        }
                        //console.log("classelements:"+elements);
                        break;
                    default:
                        break;
                };
                if (elements && elements.length) {
                    if (elements.length > 0) {
                        flag = true;
                        for (var i = 0; i < elements.length; i++) {
                            elements[i].remove();
                        }
                        console.log(`[广告去除] ${name} 元素移除成功!`);
                    }
                } else {
                    //console.log(`[广告去除] 未发现 ${name} 元素!`);
                }
            }
            if (!flag) {
                //console.log("[广告去除] 未发现要移除的元素!");
            }
        } else {
            //console.log("[广告去除] 暂不支持此站点,请提交适配反馈!");
        }
    }



    //*************************************************************************************
    //----------------------------------------广告去除
    //*************************************************************************************
    // 定义要运行的函数
    function runDelAd() {
        delAd('style',namesStyle);
        delAd('styleText',namesStyleText);
        delAd('id',namesId);
        delAd('class',namesClass);
    }
    runDelAd()
    // 每隔一秒运行一次函数
    setInterval(runDelAd, 1000);



    //*************************************************************************************
    //----------------------------------------置灰去除
    //*************************************************************************************
    function delFilter() {
        // 获取 <html> 元素
        var htmlElement = document.querySelector('html');

        // 移除原来的样式属性
        htmlElement.removeAttribute('style');

        // 添加新的样式属性
        var headElement = document.querySelector('head');
        var styleElement = document.createElement('style');
        styleElement.innerHTML = 'html { filter: none !important; }';
        headElement.appendChild(styleElement);
    }
    delFilter();


















})();

QingJ © 2025

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