// ==UserScript== // @name 主流网站文章阅读优化 // @namespace http://tampermonkey.net/ // @version 0.8 // @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 // @home-url https://greasyfork.org/zh-CN/scripts/417880 // @require https://code.jquery.com/jquery-3.5.1.js // @downloadURL none // ==/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) + "不唯一"); } /** * * @param {*} getByArr getBy系列Arr */ function ArrRomve(getByArr) { if (getByArr.length == 0) return console.log(getByArr + "不存在"); //倒序遍历删除编辑按钮 for (var i = getByArr.length - 1; i >= 0; i--) { getByArr[i].remove(); } } /* 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"); //脚部备案 ArrRomve(getByClassNameArr('edit-icon j-edit-link')); //删除编辑按钮 } 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; case "csdnnews.blog.csdn.net": csdn(); break; default: console.log(host + "域名不是文章"); } } //延时 //window.onload = function() { setTimeout(paper(), 0); }; //jQuery预载 $(document).ready(paper()); })();