Greasy Fork is available in English.
对百度百科baidubaike/csdn/知乎zhihu/简书jianshu/360doc/思否segmentfault/搜狐sohu阅读体验进行优化
// ==UserScript==
// @name New Paper Study主流网站文章阅读优化
// @namespace http://tampermonkey.net/
// @version 1.3
// @description 对百度百科baidubaike/csdn/知乎zhihu/简书jianshu/360doc/思否segmentfault/搜狐sohu阅读体验进行优化
// @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/*
// @match http://www.360doc.com/content/*
// @match https://segmentfault.com/a/*
// @match https://www.sohu.com/a/*
// @icon https://cn.bing.com/favicon.ico
// @grant none
// @home-url http://greasyfork.icu/zh-CN/scripts/417880
// @require https://code.jquery.com/jquery-3.5.1.min.js
// @run-at document-end
// ==/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,太多方法没啥必要
//(function(textContent) { document.body.appendChild(document.createElement('script')).textContent = textContent; })(usefulVar);
//--------------定义--------------
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)) console.log("错误:QRemove不存在;返回值:" + getByQuerySelector(querySelector) + "参数:" + querySelector);
else getByQuerySelector(querySelector).remove();
}
function CRemove(ClassName) {
if (getByClassNameArr(ClassName).length == 0) console.log("错误:CRemove不存在;返回值:" + getByClassNameArr(ClassName) + "参数:" + ClassName);
else if (getByClassNameArr(ClassName).length == 1) getByClassNameArr(ClassName)[0].remove(); //唯一
else {
console.log("提示:CRemove不唯一;返回值:" + getByClassNameArr(ClassName) + "参数:" + ClassName);
ArrRomve(getByClassNameArr(ClassName));
}
}
function ParentRemoveByCRemove(ClassName) {
if (getByClassNameArr(ClassName).length == 0) console.log("错误:ParentRemoveByCRemove不唯一;返回值:" + ParentRemoveByCRemove(ClassName) + "参数:" + ClassName);
else if (getByClassNameArr(ClassName).length == 1) getByClassNameArr(ClassName)[0].remove(); //唯一
else {
console.log("提示:ParentRemoveByCRemove不唯一;返回值:" + getByClassNameArr(ClassName) + "参数:" + ClassName);
ArrRomve(getByClassNameArr(ClassName));
}
}
/** 倒序遍历删除编辑按钮
* @param {*} getByArr getBy系列Arr
*/
function ArrRomve(Arr) {
if (Arr.length == 0) console.log("错误:ArrRomve不存在;返回值:" + ArrRomve(Arr) + "参数:" + Arr);
else {
for (var i = Arr.length - 1; i > 0; i--) {
Arr[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("#__next > footer"); //下方评论
QRemove("body > div:nth-child(13)"); //下载推广
}
//百度百科
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("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"); //脚部备案
CRemove('edit-icon'); //删除编辑按钮
}
if (getByQuerySelector("body > div.body-wrapper.feature.feature_small.custom > div.secondsknow-large-container.J-secondsknow-large-container")) {
console.log("推广百科");
CRemove("edit-lemma"); //编辑
CRemove("lemma-discussion"); //讨论
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.content-wrapper > div > div.main-content > span")) {
console.log("科普中国");
QRemove("body > div.body-wrapper > div.before-content"); //秒懂_科普
QRemove("body > div.body-wrapper > div.before-content > div.J-wgt-seconds-know-container"); //秒懂_科普
QRemove("body > div.body-wrapper > div.content-wrapper > div > div.main-content > span"); //专家贡献
QRemove("body > div.body-wrapper > div.content-wrapper > div.content > div.main-content > span.posterFlag.expert-icon"); //专家贡献
QRemove("#hotspotmining_s"); //中间上面推广他说_科普
QRemove("body > div.body-wrapper > div.content-wrapper > div > div.main-content > div.special-topic"); //秒懂_科普
}
if (getByQuerySelector("body > div.body-wrapper > div.before-content > div")) {
console.log("普通词条");
CRemove("edit-lemma"); //编辑
CRemove("lemma-discussion"); //讨论
QRemove("body > div.body-wrapper > div.content-wrapper > div > div.main-content > dl.lemmaWgt-lemmaTitle.lemmaWgt-lemmaTitle- > dd > a.add-video.cmn-btn-hover-blue.cmn-btn-28.J-add-video-link"); //上传视频
QRemove("body > div.body-wrapper > div.before-content > div"); //秒懂视频_普通词条
}
//getByQuerySelector("body > div.body-wrapper > div.content-wrapper > div > div.side-content > div.side-catalog").empty()//empty导航目录提取
}
//360doc
/**
* //顶部bar???不知道是否有需求删除
* //转载???无法删除,原因:动态加载
* //vip??????360的js无法加载,原因未明
*/
function doc360() {
if (document.querySelector("#bgchange")) document.querySelector("#bgchange").style.width = "1000px"; //外部1000px
if (document.querySelector("#articlecontent > table")) document.querySelector("#articlecontent > table").style.width = "1000px"; //内部1000px
//CRemove("header"); //顶部bar???;不知道是否有需求删除;是否需要直接使用搜索框
//QRemove("#zcommondID > span.newbtn_forward"); //转载???无法删除;原因:动态加载;解决方案:1.直接去掉整个工具栏,2.硬要看一下收藏:有待解决
QRemove("#adarttopgoogle"); //vip广告
CRemove("floatqrcode"); //左边二维码
CRemove("a_right"); //右侧返回顶部
QRemove("#goTop2"); //右下角返回顶部
//先去除div3一大串东西先
if (document.querySelector("body > div.doc360article_content > div.a_left > div:nth-child(3)").style.width == "676px") {
QRemove("body > div.doc360article_content > div > div:nth-child(3)");
}
QRemove("#bgchange > div.bottom_controler"); //bottom_controler
QRemove("#bgchange > div.prev_next"); //推荐
QRemove("#divtort"); //与我们联系
QRemove("body > div.atfixednav"); //浮动顶部
//异步动态js
QRemove("#registerOrLoginLayer"); //登录可以复制
}
//segmentfault
function segmentfault() {
CRemove("functional-area-left sticky-top d-none d-xl-flex"); //左侧分享
QRemove("#sf-article > div.row > div.col-12.col-xl-auto"); //右侧广告栏
QRemove("#footer"); //脚注
}
//sohu
function sohu() {
QRemove("#main-header"); //顶部
QRemove("#article-container > div.column.left"); //左边
QRemove("#left-bottom-ad");//左下角广告
QRemove("#right-side-bar"); //右边
QRemove("#float-btn"); //右边按钮
QRemove("#backsohucom > span.backword");
QRemove("#article-container > div > div > div > div.statement");
QRemove("#article-container > div > div > div > div.bottom-relate-wrap.clear.type-3");
//利用遍历删除所有element,只能用倒序????
//利用.children[i],test complete
function test01() {
if (getByQuerySelector("#article-container > div.left.main")) {
for (var i = 0, j = 0, len = document.querySelector("#article-container > div.left.main").children.length; i < len; i++) {
//Element.hasAttributes()必定有ture/flase,下次一定要把else写完整
//if (document.querySelector("#article-container > div").children[j].hasAttributes()) {
if (getByQuerySelector("#article-container > div").children[j].attributes[0].value == "content") {
j++;
} else {
getByQuerySelector("#article-container > div").children[j].remove();
//改用CSS3选择器:nth-child,测试好像是不能够更改变量
//document.querySelector("#article-container > div:nth-child(" + j + ")").remove();
}
//} else;
}
}
}
test02();
//利用css3:nth.child,test complete
function test02() {
if (getByQuerySelector("#article-container > div.left.main")) {
for (var i = 0, j = 1, len = document.querySelector("#article-container > div.left.main").children.length; i < len; i++) {
//Element.hasAttributes()必定有ture/flase,下次一定要把else写完整
//if (document.querySelector("#article-container > div").children[j].hasAttributes()) {
if (document.querySelector("#article-container > div > div:nth-child(" + j + ")").attributes[0].value == "content") {
j++;
} else {
//getByQuerySelector("#article-container > div").children[j].remove();
//改用CSS3选择器:nth-child,测试好像是不能够更改变量
document.querySelector("#article-container > div > div:nth-child(" + j + ")").remove();
}
//} else;
}
}
}
}
//判断网页host
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 "www.360doc.com":
doc360();
break;
case "segmentfault.com":
segmentfault();
break;
case "csdnnews.blog.csdn.net":
csdn();
break;
case "www.sohu.com":
sohu();
break;
default:
console.log(host + "域名不是文章");
}
}
//延时
//window.onload = function() { setTimeout(paper(), 0); };
//jQuery预载
var $ = jQuery.noConflict(true);
//$(document).ready(paper());
paper();
//setTimeout(paper(),10000); //延时一段时间后执行function,只执行一次;
//setInterval(function,5000);//以time为时间间隔,反复执行function。
})();