⚡️拥有数项独家功能的最强简书脚本,不服比一比⚡️|🕶继CSDNGreener的又一力作,一样的实用美观|🖥主页滑动自动加载,无需手动点击|
// ==UserScript== // @name 🔥持续更新🔥 简书 jianshu.com 广告完全过滤、人性化脚本优化:Greener系列的新产品,有口皆碑超好用。 // @namespace https://github.com/adlered // @version 1.0.1 // @description ⚡️拥有数项独家功能的最强简书脚本,不服比一比⚡️|🕶继CSDNGreener的又一力作,一样的实用美观|🖥主页滑动自动加载,无需手动点击| // @author Adler // @connect www.jianshu.com // @include *://*.jianshu.com/* // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js // @require https://cdn.jsdelivr.net/npm/jquery.cookie/jquery.cookie.js // @require https://cdn.jsdelivr.net/npm/[email protected]/nprogress.js // @require https://cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js // @contributionURL https://doc.stackoverflow.wiki/web/#/21?page_id=138 // @grant GM_addStyle // @note 21-07-20 1.0.1 去除更多广告 // @note 21-07-20 1.0.0 初版发布 // ==/UserScript== var version = "1.0.1"; var currentURL = window.location.href; if (currentURL.indexOf("?") !== -1) { currentURL = currentURL.substring(0, currentURL.indexOf("?")); } var list = []; var startTimeMilli = Date.now(); var stopTimeMilli = 0; var timeoutInt; // 配置控制类 class Config { get(key, value) { var cookie = $.cookie(key); if (cookie == undefined) { new Config().set(key, value); console.debug("Renew key: " + key + " : " + value); return value; } console.debug("Read key: " + key + " : " + cookie); if (cookie === "true") { return true; } if (cookie === "false") { return false; } return cookie; } set(setKey, setValue) { $.cookie(setKey, setValue, { path: '/', expires: 365 }); console.debug("Key set: " + setKey + " : " + setValue); } listenButton(element, listenKey, trueAction, falseAction) { $(element).click(function () { let status = new Config().get(listenKey, true); console.debug("Status: " + status); if (status === "true" || status) { console.debug("Key set: " + listenKey + " :: " + false); new Config().set(listenKey, false); } else { console.debug("Key set: " + listenKey + " :: " + true); new Config().set(listenKey, true); } }); } listenButtonAndAction(element, listenKey, trueAction, falseAction) { $(element).click(function () { let status = new Config().get(listenKey, true); console.debug("Status: " + status); if (status === "true" || status) { console.debug("Key set: " + listenKey + " :: " + false); new Config().set(listenKey, false); falseAction(); } else { console.debug("Key set: " + listenKey + " :: " + true); new Config().set(listenKey, true); trueAction(); } }); } } //文档高度 function getDocumentTop() { var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0; if (document.body) { bodyScrollTop = document.body.scrollTop; } if (document.documentElement) { documentScrollTop = document.documentElement.scrollTop; } scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop; return scrollTop; } //可视窗口高度 function getWindowHeight() { var windowHeight = 0; if (document.compatMode == "CSS1Compat") { windowHeight = document.documentElement.clientHeight; } else { windowHeight = document.body.clientHeight; } return windowHeight; } //滚动条滚动高度 function getScrollHeight() { var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0; if (document.body) { bodyScrollHeight = document.body.scrollHeight; } if (document.documentElement) { documentScrollHeight = document.documentElement.scrollHeight; } scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight; return scrollHeight; } function l(log) { console.log("[JianShuGreener] " + log); } function e(error) { console.error("[JianShuGreener] " + error); } function clear() { list = []; } function put(tag) { list.push(tag); } function clean(times) { var loop = setInterval(function () { --times; if (times <= 0) { clearInterval(loop); } for (var k = 0; k < list.length; k++) { $(list[k]).remove(); } }, 100); } function loop(num) { setInterval(function () { if (num === 1) { // 主页穿插的广告 $("div[aria-label='baidu-ad']").remove(); } }, 500); } function common(times, f) { var loop = setInterval(function () { --times; if (times <= 0) { clearInterval(loop); } f(); }, 100); NProgress.inc(); } (function () { 'use strict'; l("欢迎使用 JianShuGreener V" + version + ",页面优化中..."); NProgress.start(); let config = new Config(); var blockURL = currentURL.split("/").length; var homePage = /(www\.jianshu\.com\/)$/; var articlePage = /\/p\//; var itPage = /\/techareas\/backend/; var notifyPage = /\/notifications\#\//; var settingsPage = /\/settings\//; var subscribePage = /\/subscriptions\#\//; if (homePage.test(currentURL)) { l("正在优化主页浏览体验..."); common(5, function() { // 上栏抽奖 $("a:contains('抽奖')").parent().remove(); // 右下角红包 $("img[src='//cdn2.jianshu.io/assets/web/close_luck-29c555eb1a1fc84e0df2284fb668fbae.png']").parent().parent().remove(); // 顶栏下载App $(".menu-text:contains('下载App')").parent().remove(); }); // 右侧下载简书二维码 put("#index-aside-download-qrbox"); // 右侧谷歌广告 put("div[aria-label='3rd-ad']"); // 推荐作者 put(".recommended-author-wrap"); // 页脚 put("footer"); window.onscroll = function () { setTimeout(function () { if (timeoutInt != undefined) { window.clearTimeout(timeoutInt); } timeoutInt = window.setTimeout(function () { //监听事件内容 if(getScrollHeight() == getDocumentTop() + getWindowHeight()){ document.getElementsByClassName('load-more')[0].click() l("触发自动加载阅读更多"); } }, 105); }, 100); } loop(1); } else if (articlePage.test(currentURL)) { l("正在优化文章页浏览体验..."); common(5, function() { // 顶栏下载App $("a:contains('下载APP')").remove(); // 悬浮抽奖图标 $("div:contains('抽奖'):last").parent().parent().remove(); // 更多好文按钮 $("div:contains('更多好文'):last").parent().remove(); }); // 简书钻 put("span[aria-label='简书钻']"); // 右侧谷歌广告 put("section[aria-label='baidu-ad']"); // 右侧星辰广告 setTimeout(function() { $("section[aria-label='xingchen-ad']").remove(); }, 1000); } else if (itPage.test(currentURL)) { l("正在优化IT技术页浏览体验..."); common(5, function() { // 顶栏下载App $(".menu-text:contains('下载App')").parent().remove(); }); } else if (notifyPage.test(currentURL)) { l("正在优化通知页浏览体验..."); // 左侧谷歌广告 put("div[aria-label='3rd-ad']"); common(5, function() { // 上栏抽奖 $("a:contains('抽奖')").parent().remove(); }); } else if (settingsPage.test(currentURL)) { l("正在优化设置页浏览体验..."); // 左侧谷歌广告 put("div[aria-label='3rd-ad']"); common(5, function() { // 上栏抽奖 $("a:contains('抽奖')").parent().remove(); }); } else if (subscribePage.test(currentURL)) { l("正在优化关注页浏览体验..."); common(5, function() { // 上栏抽奖 $("a:contains('抽奖')").parent().remove(); }); window.onscroll = function () { setTimeout(function () { if (timeoutInt != undefined) { window.clearTimeout(timeoutInt); } timeoutInt = window.setTimeout(function () { //监听事件内容 if(getScrollHeight() == getDocumentTop() + getWindowHeight()){ document.getElementsByClassName('load-more')[0].click() l("触发自动加载阅读更多"); } }, 105); }, 100); } } else { l("正在尝试优化浏览体验..."); common(5, function() { // 上栏抽奖 $("a:contains('抽奖')").parent().remove(); }); } clean(10); NProgress.done(); stopTimeMilli = Date.now(); l("优化完毕! 耗时 " + (stopTimeMilli - startTimeMilli) + "ms"); })();