去广告;布局及格式优化;优化内容推荐展示样式;图片居中;删除空段落;|CSDN|自动阅读全文;去除首行缩进;支持MathJax;|51脚本|SegmentFault|W3cschool|。(修改自新版CSDN阅读体验提升)
// ==UserScript== // @name 博客阅读美化(去广告|自动全文|简洁) // @namespace http://www.csdn.net/ // @icon https://favicon.yandex.net/favicon/csdn.net // @version 1.2.16-20180429 // @description 去广告;布局及格式优化;优化内容推荐展示样式;图片居中;删除空段落;|CSDN|自动阅读全文;去除首行缩进;支持MathJax;|51脚本|SegmentFault|W3cschool|。(修改自新版CSDN阅读体验提升) // @author zhuzhuyule // @license GPL version 3 // @match http://blog.csdn.net // @match https://blog.csdn.net/* // @match https://bbs.csdn.net/* // @match http://so.csdn.net/* // @match https://www.csdn.net // @match http://www.csdn.net/* // @match https://download.csdn.net // @match http://download.csdn.net/* // @match http://www.jb51.net/* // @match https://www.jb51.net/* // @match https://segmentfault.com/* // @match https://www.w3cschool.cn/* // @match https://www.liaoxuefeng.com/* // @grant none // @run-at document-body // @note v1.2.14 CSDN改版,及名称简化 // @note v1.2.15 新增 廖雪峰 个人博客 广告过滤 https://www.liaoxuefeng.com/* // @note v1.2.16 CSDN隐藏显示更多按钮,新增CSDN多页面广告 // ==/UserScript== (function () { 'use strict'; //初始化一个 document.ready 事件 (function () { var ie = !!(window.attachEvent && !window.opera); var wk = /webkit\/(\d+)/i.test(navigator.userAgent) && (RegExp.$1 < 525); var fn = []; var run = function () { for (var i = 0; i < fn.length; i++) fn[i](); }; var d = document; d.ready = function (f) { if (!ie && !wk && d.addEventListener) return d.addEventListener('DOMContentLoaded', f, false); if (fn.push(f) > 1) return; if (ie) (function () { try { d.documentElement.doScroll('left'); run(); } catch (err) { setTimeout(arguments.callee, 0); } })(); else if (wk) var t = setInterval(function () { if (/^(loaded|complete)$/.test(d.readyState)) { clearInterval(t); run(); } }, 0); }; })(); //------------------------------------------------------------------------------------------ // 文档载入成功后开始执行 try { if ( location.host.indexOf('csdn.net') > -1) { dealCSDN(); } else if ('www.jb51.net' == location.host) { dealJb51(); } else if ('segmentfault.com' == location.host) { dealSegmentFault(); } else if ('www.w3cschool.cn' == location.host) { dealW3cschool(); } else if ('www.liaoxuefeng.com' == location.host) { dealLiaoxuefeng(); } window.addEventListener('scroll', () => { if (getScrollTop() + getWindowHeight() > getScrollHeight() - 10) { document.querySelectorAll('dl[class=""]').forEach(function (item) { item.parentElement.removeChild(item); }); document.querySelectorAll('iframe').forEach(function (item) { if ((item.src && item.src.indexOf('pos.baidu.com') > 0)) { item.parentElement.removeChild(item); } }); } }); } catch (e) { console.log(e); } //------------------------------------------------------------------------------------------ //页面处理过程 /** * 处理 CSDN广告及布局 * blog.csdn.net */ function dealCSDN() { var s = ''; //公共部分 s += 'h1 { "text-align": "center"; }'; s += '.article_content p { margin:1em 0; "line-height": "1.75em";"color":"#2F2F2F"}'; s += '.pulllog-box { display:none !important; }'; //自动全文 s += '.article_content{ height: auto !important;}'; s += '#article_content{ height: auto !important;}'; //搜索页 s += '.rightadv,'; //首页 s += '.banner-ad-box,.right_extension.slide-outer,aside .slide-outer.right_top,'; //下载页 s += '.ad,.top_ad_box,#layerd'; s += '{ display: none !important; }'; //旧版本 s += '#homepageArticles ,#layerd,#nav_show_top_stop, .QRcodebg1, .readall_box,.hide-article-box'; s += '{ display: none !important; }'; s += '#com-quick-reply,#com-quick-collect,#com-d-top-a { min-width: 30px !important; width: 31px !important;}'; s += '#com-quick-reply:hover,#com-quick-collect:hover,#com-d-top-a:hover { width: 90px !important;}'; //新版本 s += '.fixRight,.extension_other,.fixRight_box,.persion_article,.yd_a_d_feed_cla,.edu_promotion,.box-box-default,.csdn-tracking-statistics[data-mod="popu_4"],main .edu-promotion'; s += '{ display: none !important;}'; s += 'body > header{transition: height 1s;margin-bottom: 10px;overflow: hidden;}'; s += 'header.hide{height:5px;}'; s += 'header.hide:hover{height:140px;}'; s += '.article_content,.article_content p,.article_content p span:not([class^=MathJax] span):not([class^=MathJax]):not([id^=MathJax] span):not([id^=MathJax]) {"font-family": "Microsoft YaHei,Consolas";"font-size": "15px" }'; s += '.article_content p .MathJax { "font-size": "16px"; }'; s += '.article_content p img{ "display": "block";"margin": "0 auto" }'; //修改原来烦人的样式 s += contentEndStyle('article'); s += recomendStyle(); addStyle(s); document.ready(function () { //缩放头部 let header = document.getElementsByTagName('header')[0]; if (header) header.classList.add('hide'); //自动展开全文 var btnMore = document.querySelector('a.btn.read_more_btn'); if (btnMore) btnMore.click(); //优化推荐列表显示效果 modifyRecomendWeak('.recommend_list'); modifyRecomendWeak('.recommend-box'); //删除空白段落 var paragraph = document.querySelectorAll('.article_content p'); paragraph.forEach(function (item) { if (!item.innerText.trim() && !item.querySelector('img,a')) item.parentElement.removeChild(item); }); document.querySelectorAll('iframe').forEach(function (item) { if ((item.src && item.src.indexOf('pos.baidu.com') > 0)) { item.parentElement.removeChild(item); } }); setTimeout(function () { var hideArr = []; document.querySelectorAll('div[id]').forEach(function (item) { if (item.id.startsWith('BAIDU_SSP')) hideArr.push('#' + item.id); }); document.querySelectorAll('dl[class=""]').forEach(function (item) { item.parentElement.removeChild(item); }); document.querySelectorAll('iframe').forEach(function (item) { if ((item.src && item.src.indexOf('pos.baidu.com') > 0)) { if (item.parentElement.id.length > 0) hideArr.push('#' + item.parentElement.id); else item.parentElement.style.display = 'none !important;'; } }); if (hideArr.length > 0) addStyle(hiddenStyle(hideArr)); }, 200); }); } /** * 处理 脚本之家广告及布局 * www.jb51.net */ function dealJb51() { var hideArr = []; hideArr.push('.main.mb10.clearfix'); hideArr.push('.header .wrap'); hideArr.push('.main.clearfix.bgf .lbd.clearfix'); hideArr.push('#content>.jb51ewm'); hideArr.push('.lbd.clearfix'); hideArr.push('.article-right>.r300.clearfix.mt10'); //hideArr.push(''); var style = hiddenStyle(hideArr); style += contentEndStyle('#content'); style += recomendStyle(); addStyle(style); document.ready(function () { //优化推荐列表显示效果 modifyRecomendWeak('.xgcomm.clearfix'); //删除空白段落 var paragraph = document.querySelectorAll('#content p'); paragraph.forEach(function (item) { if (!item.innerText.trim() && !item.querySelector('img,a')) item.parentElement.removeChild(item); }); document.querySelectorAll('iframe').forEach(function (item) { if ((item.src && item.src.indexOf('pos.baidu.com') > 0)) { item.parentElement.removeChild(item); } }); setTimeout(function () { var hideArr = []; document.querySelectorAll('div[id]').forEach(function (item) { if (item.id.startsWith('BAIDU_SSP')) hideArr.push('#' + item.id); }); document.querySelectorAll('iframe').forEach(function (item) { if ((item.src && item.src.indexOf('pos.baidu.com') > 0)) { if (item.parentElement.id.length > 0) hideArr.push('#' + item.parentElement.id); else item.parentElement.style.display = 'none !important;'; } }); if (hideArr.length > 0) addStyle(hiddenStyle(hideArr)); }, 200); }); } /** * 处理 思否 广告 * segmentfault.com */ function dealSegmentFault() { var hideArr = []; hideArr.push('.mt20.ad-detail-mm'); hideArr.push('.side .mb25'); //hideArr.push(''); var style = hiddenStyle(hideArr); addStyle(style); } /** * 处理 w3cschool 广告 * www.w3cschool.cn */ function dealW3cschool() { var hideArr = []; hideArr.push('.widget-body'); hideArr.push('.bottom-tools'); hideArr.push('#header'); hideArr.push('.project-sq'); hideArr.push('.abox-item'); //hideArr.push(''); var style = hiddenStyle(hideArr); style += '.left-drager{top: 0 !important;}'; style += '.splitter-sidebar{padding-bottom: 10px !important;}'; addStyle(style); window.addEventListener('resize',function () { setTimeout(()=>{ var height = workLeftHeight + 100 + 'px'; document.querySelector(".left-container").style.height = height; document.querySelector(".slimScrollDiv").style.height = height; document.querySelector(".fixed-sidebar").style.height = height; },500); }); setTimeout(()=>{ var height = workLeftHeight + 100 + 'px'; document.querySelector(".left-container").style.height = height; document.querySelector(".slimScrollDiv").style.height = height; document.querySelector(".fixed-sidebar").style.height = height; },2000); } /** * 处理 w3cschool 广告 * www.w3cschool.cn */ function dealLiaoxuefeng() { var hideArr = []; hideArr.push('#x-sponsor-b'); hideArr.push('#x-sponsor-a'); //hideArr.push(''); var style = hiddenStyle(hideArr); style += '.left-drager{top: 0 !important;}'; style += '.splitter-sidebar{padding-bottom: 10px !important;}'; addStyle(style); } //------------------------------------------------------------------------------------------ //辅助方法 function getScrollTop() { 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 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 getWindowHeight() { var windowHeight = 0; if (document.compatMode == "CSS1Compat") { windowHeight = document.documentElement.clientHeight; } else { windowHeight = document.body.clientHeight; } return windowHeight; } function hiddenStyle(items) { return (items.toString() + ' {display: none !important; }'); } function contentEndStyle(selector) { return selector + '::after{content:"— The End —";color:#e0e0e0;text-align:center;width:100%;line-height:60px;margin-top:-40px;display:block;font-family:Monotype Corsiva,Blackadder ITC,Brush Script MT,Bradley Hand ITC,Bell MT;font-size:1.6em;padding-bottom:.6em;}'; } function recomendStyle() { var s = '*{transition: opacity 1s, width 1s;}'; s += '.recomend_weak { height: 180px !important; overflow-y: hidden !important; opacity:.2; }'; s += '.recomend_show { height:auto !important; overflow-y !important: visible;opacity:.2; }'; s += '.recomend_weak:hover { opacity:1; }'; s += '.recomend_show:hover { opacity:1; }'; return s; } function addStyle(s) { //添加样式到 Head 中 var head = document.head || document.getElementsByTagName('head')[0]; if (head) { var style = document.createElement("style"); style.type = "text/css"; style.appendChild(document.createTextNode(s)); head.appendChild(style); } } //优化推荐列表显示效果 function modifyRecomendWeak(selector) { var item = document.querySelector(selector); if (item) { var func = function () { item.removeEventListener('mousemove', func); this.classList.add('recomend_show'); this.classList.remove('recomend_weak'); }; item.classList.add('recomend_weak'); item.addEventListener('mousemove', func); } } })();