主流网站文章阅读优化

对百度百科/csdn/知乎/简书阅读体验进行优化

目前為 2020-12-11 提交的版本,檢視 最新版本

// ==UserScript==
// @name         主流网站文章阅读优化
// @namespace    http://tampermonkey.net/
// @version      0.6
// @description  对百度百科/csdn/知乎/简书阅读体验进行优化
// @author       白水
// @match        https://baike.baidu.com/item/*
// @match        https://www.zhihu.com
// @match        https://www.zhihu.com/*
// @match        https://zhuanlan.zhihu.com/p/*
// @match        https://blog.csdn.net
// @match        https://blog.csdn.net/*
// @match        https://*.blog.csdn.net/*
// @match        https://www.jianshu.com/p/*
// @grant        none
// @require      https://code.jquery.com/jquery-3.5.1.js
// ==/UserScript==

//--------------常用封装--------------------
//写入JQuery 3.5.1
//(function(url) { document.body.appendChild(document.createElement('script')).src = url; })("https://code.jquery.com/jquery-3.5.1.js");
//var $;//不能写入
//--------------定义--------------
var host = window.location.host, //host
    href = window.location.href; //href
/** get 指定JS querySelector的对象,返回一个对象
 * @param {*} querySelector JS 选择器
 */
function getByQuerySelector(querySelector) {
    if (!document.querySelector(querySelector)) return false;
    return document.querySelector(querySelector);
}
/** get 指定id属性值的对象,返回一个对象
 * @param {*} Id
 */
function getById(Id) {
    if (!document.getElementsById(Id)) return false;
    return document.getElementsById(Id);
}
/**get 指定TagName的对象 ,返回一个数组
 * @param {*} TagName 指定tag的对象
 */
function getByTagNameArr(TagName) {
    if (!document.getElementsByTagName(TagName)) return false;
    return document.getElementsByTagName(TagName);
}
/** get 指定Name属性的对象,返回一个数组
 * @param {*} Name 指定Name的对象
 */
function getByNameArr(Name) {
    if (!document.getElementsByName(Name)) return false;
    return document.getElementsByName(Name);
}
/** get 指定ClassName的对象,返回一个数组//仅仅缩写
 * @param {*} ClassName 类名称
 */
function getByClassNameArr(ClassName) {
    if (!document.getElementsByClassName(ClassName)) return false; //几乎百分百不会触发
    return document.getElementsByClassName(ClassName);
}
/** get 筛选指定ClassName,利用getByClassNameArr数组返回一个数组
 * @param {*} ClassName 类名称
 */
function getClassUniqueArr(ClassName) {
    var oElements = getByClassNameArr(ClassName),
        boxArr = new Array();
    for (var i = 0, len = oElements.length; i < len; i++) {
        if (oElements[i].className == ClassName) {
            boxArr.push(oElements[i]);
        }
    }
    return boxArr;
}

function QRemove(querySelector) {
    if (!getByQuerySelector(querySelector)) return console.log(getByQuerySelector(querySelector) + "不存在");
    return getByQuerySelector(querySelector).remove();
}

function CRemove(ClassName) {
    if (getByClassNameArr(ClassName).length == 0) return console.log(getByClassNameArr(ClassName) + "不存在");
    if (getByClassNameArr(ClassName).length == 1) return getByClassNameArr(ClassName)[0].remove(); //唯一
    return console.log(getByClassNameArr(ClassName) + "不唯一");
}

/* 
Element.prototype.remove = function() {
    //   像那些属性节点,注释节点,文本节点等等根本不可能做父节点,所以可以说parentNode返回的一般都是父元素节点====一直没有判断这个节点是否存在
    //if (!this) return false;
    //if (!this.parentNode) return false;
    this.parentNode.removeChild(this); //父元素节点里删除调用者
};
 */
/* 
HTMLCollection.prototype.remove = function() {
    //   像那些属性节点,注释节点,文本节点等等根本不可能做父节点,所以可以说parentNode返回的一般都是父元素节点====一直没有判断这个节点是否存在
    //if (this) return false; //HTMLCollection [] 必定存在
    if (this.length == 0) return false; //不存在
    //if (!this.parentNode) return false;
    this.parentNode.removeChild(this); //父元素节点里删除调用者
}; 
*/

//--------------Function--------------
//--------------常用封装--------------------

(function() {
    'use strict';
    //文章优化
    function paper() {
        //CSDN
        function csdn() {
            //this指向paper
            CRemove("csdn-side-toolbar"); //右边下载二维码
            QRemove("#mainBox > aside"); //左边博主信息
            QRemove("#recommend-list-box"); //右边推广
            QRemove("#mainBox > main > div.first-recommend-box.recommend-box"); //底下第一下载推广
            QRemove("#mainBox > main > div.second-recommend-box.recommend-box"); //底下第二下载推广
            QRemove("#mainBox > main > div.blog-footer-bottom"); //脚注!!!经常删不掉
            QRemove("#passportbox"); //移除登录(不可用)
        }
        //知乎
        function zhihu() {
            QRemove("#root > div > div.AdblockBanner"); //首页广告拦截
            QRemove("body > div.__web-inspector-hide-shortcut__"); //移除登录(不可用)
            QRemove("#root > div > main > div > div > div.GlobalSideBar.GlobalSideBar--old > div > div"); //右边创作
            QRemove("#root > div > main > div > div.Question-main > div > div > div.Card.QuestionInvitation"); //问问题
            QRemove("#root > div > main > div > div > div.GlobalSideBar.GlobalSideBar--old > div > div.Sticky.is-fixed > footer"); //脚注
            QRemove("#root > div > main > div > div.Question-main > div.Question-sideColumn.Question-sideColumn--sticky"); //右边博主信息
        }
        //知乎专栏
        function zhihuzhuanlan() {
            QRemove("#root > div > main > div > div.ColumnPageHeader-Wrapper"); //广告拦截
        }
        //简书
        function jianshu() {
            QRemove("#__next > div._3Pnjry"); //左边分享
            QRemove("#__next > div._21bLU4._3kbg6I > div > aside"); //右边推广
            QRemove("body > div:nth-child(13)"); //下载推广
            QRemove("#__next > footer"); //下方评论
        }
        //百度百科
        function baidubaike() {
            mustDelete();

            function mustDelete() {
                getByQuerySelector("body > div.header-wrapper.pc-header-new > div > div").style.height = "0px";
                QRemove("body > div.lemmaWgt-searchHeader > div > div.tool-buttons"); //滚动之后,顶部右上角工具栏
                QRemove("body > div.header-wrapper.pc-header-new > div.topbar.cmn-clearfix"); //顶部百度更多导航内容
                QRemove("#searchForm > a.help"); //顶部帮助
                QRemove("#J-declare-wrap"); //顶部免责声明
                QRemove("body > div.navbar-wrapper"); //头部百科导航都能删除
                CRemove("edit-lemma"); //编辑
                CRemove("lemma-discussion"); //讨论
                CRemove("top-tool "); //右上角贴边删除class一次性去除试试?ok!
                getByQuerySelector("body > div.body-wrapper > div.content-wrapper > div.content").style.width = "850px"; //中间内容
                QRemove("body > div.body-wrapper > div.content-wrapper > div > div.side-content"); //中间侧边内容
                QRemove("#side-share"); //中间右边贴边固定分享
                QRemove("#tashuo_bottom"); //脚部他说
                QRemove("body > div.wgt-footer-main"); //脚部备案
                var editArr = getByClassNameArr('edit-icon j-edit-link'); //编辑按钮
                //遍历删除编辑按钮
                for (var i = editArr.length - 1; i >= 0; i--) {
                    editArr[i].remove();
                }
            }

            if (getByQuerySelector("body > div.body-wrapper.feature.feature_small.custom > div.secondsknow-large-container.J-secondsknow-large-container")) { xuehui(); }

            function xuehui() {
                QRemove("body > div.body-wrapper.feature.feature_small.custom > div.secondsknow-large-container.J-secondsknow-large-container"); //推广秒懂,学慧网
                QRemove("#pageTabs"); //中间最上面推广标签
                QRemove("body > div.body-wrapper.feature.feature_small.custom > div.content-wrapper > div > div.main-content > div.main_tab.main_tab-defaultTab.curTab > iframe"); //推广视频,学慧网等等.容易因为这个出bug,删除不掉导致各种问题,
            }

            if (getByQuerySelector("body > div.body-wrapper > div.before-content > div.J-wgt-seconds-know-container")) { kepuzhongguo(); }

            function kepuzhongguo() {
                QRemove("body > div.body-wrapper > div.before-content > div.J-wgt-seconds-know-container"); //秒懂_科普
                QRemove("#hotspotmining_s"); //中间上面推广他说_科普
                QRemove("body > div.body-wrapper > div.content-wrapper > div > div.main-content > div.special-topic"); //秒懂_科普
                QRemove("body > div.body-wrapper > div.content-wrapper > div > div.main-content > span"); //专家贡献
            }

            if (getByQuerySelector("body > div.body-wrapper > div.before-content > div")) { putpong(); }

            function putpong() {
                QRemove("body > div.body-wrapper > div.before-content > div"); //秒懂视频_普通词条
            }
            //getByQuerySelector("body > div.body-wrapper > div.before-content > div:nth-child(1)").remove(); //秒懂视频_科普中国_普通词条 > div:nth-child(1)
            //getByQuerySelector("body > div.body-wrapper > div.before-content > div.J-wgt-seconds-know-container.__web-inspector-hide-shortcut__");//秒懂视频_科普中国
            //getByQuerySelector("body > div.body-wrapper.feature.feature_small.custom > div.secondsknow-large-container.J-secondsknow-large-container");
            //getByClassNameArr("secondsknow-large-container J-secondsknow-large-container")[0].remove(); //秒懂视频_推广类,学慧网?????
            //getByQuerySelector("body > div.body-wrapper > div.content-wrapper").style.backgroundColor = "rgba(255, 255, 255, 0.5)"
            //getByQuerySelector("body").style="background-repeat: repeat-y;background-size: 100%;background-attachment:fixed;background-image: url('https://www.moe123.net/static/img/xingzi_illust/top_page/2020_rm_rf_rx7649.jpg');"

            //getByQuerySelector("body > div.body-wrapper > div.content-wrapper > div > div.side-content > div.side-catalog").empty()//empty导航目录提取
        }
        switch (host) {
            case "blog.csdn.net":
                csdn();
                break;
            case "www.zhihu.com":
                zhihu();
                break;
            case "zhuanlan.zhihu.com":
                zhihuzhuanlan();
                break;
            case "www.jianshu.com":
                jianshu();
                break;
            case "baike.baidu.com":
                baidubaike();
                break;
            default:
                console.log("不是文章的 host");
        }
    }
    //延时
    //window.onload = function() { setTimeout(paper(), 0); };
    //jQuery预载
    $(document).ready(paper());
})();

QingJ © 2025

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