// ==UserScript== // @name 贴吧页面精简 // @namespace https://greasyfork.org/zh-CN/scripts/23687 // @namespace https://coding.net/u/BackRunner/p/GreaseMonkey-JS/git // @contributionURL https://sinacloud.net/backrunner/img/alipay.jpg // @version 2.4.5 // @description 【可能是你遇到的最好用的贴吧精简脚本】,完全去除扰眼模块、广告模块、各类伪装广告,全面支持各种贴吧页面,免登录看帖 // @author BackRunner // @include *://tieba.baidu.com/* // @exclude *://tieba.baidu.com/f/fdir* // @run-at document-body // @require https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js // @license MIT // @grant unsafeWindow // @grant GM_setValue // @grant GM_getValue // @grant GM_listValues // @grant GM_info // @downloadURL none // ==/UserScript== // ==== Tips ===== // 使用TamperMonkey的用户可以将脚本的加载位置设置为document-start获得更好效果,若出现不生效等错误请还原设置 // 请根据您的需要根据下面代码的注释选择需要隐藏的模块,有不想隐藏的模块可以注释掉那一行代码 // 请根据您的需要与注释调整变量定义内的内容 // 遇到问题请立即反馈 // ==== Donate ==== // 如果您觉得本脚本好用可以赞助我一点零花 // donate@backrunner.top (支付宝) // === 更新日志 === // 2016.11.26 - 2.4.5 // 错误修正 // 优化代码 // 头图禁用功能修改 // 设置面板调整 // 排除目录页 // 2016.11.20 - 2.4.4 // 改善了设置面板的触发事件 // 修改匹配设置 // 添加对个人主页的支持 // 添加一些设置 // ================ (function() { //========================= // 变量定义 //========================= var sleepTime; var sleepTimeWhenPageTurn; var postprocess; var homePageProcess; var groupPageProcess; var noLoginProcess; var homeProcess; var isHeadimg; var checkrate; var delayScriptRunTimes; //底部信息div var foot; //===================== //以上内容可以修改,请勿修改以下内容 //===================== var startTime = new Date().getTime(); var finishTime = -1; //========================= // 主执行区 //========================= //控制台信息 console.warn('贴吧页面精简 by BackRunner: 初始化'); //初始化 initialize(); console.warn('贴吧页面精简 by BackRunner: 启动'); //css修改 appendCSS(); //更新信息 updateAlert(); if (postprocess){ //惰性脚本执行 $(document).ready(function(){ //加载计时 finishTime = new Date().getTime() - startTime; console.log('贴吧页面精简 by BackRunner: 页面加载用时: ' + finishTime); console.warn('贴吧页面精简 by BackRunner: 开始执行惰性脚本'); try{ //控制面板 console.warn('贴吧页面精简 by BackRunner: 正在创建控制面板'); createControlPanel(); } catch(e){ console.error(e); } try{ //底部信息 createFooterLayer(); addFinishTimeToFooter(); } catch(e){ console.error(e); } //列表翻页监听 if (window.location.href.indexOf("tieba.baidu.com/f") !== -1){ addListenerToList(); adinListClean(); disableForumCard(); } else { if (window.location.href.indexOf("tieba.baidu.com/p/") !== -1){ addListenerToPage(); tpointADClean(); adinPageClean(); //执行免登录模块 if (noLoginProcess){ addNoLoginLZEventListener(); noLogin(); } } else { if (window.location.href.indexOf("tieba.baidu.com/group") != -1){ console.warn('贴吧页面精简 by BackRunner: 当前位于群组页面,不执行群组页面惰性脚本'); } else { if (window.location.href == "http://tieba.baidu.com/"){ console.warn('贴吧页面精简 by BackRunner: 当前位于主页,不执行主页相关惰性脚本'); } else { console.warn('贴吧页面精简 by BackRunner: 页面未适配延迟脚本'); } } } } }); //延迟执行 setTimeout(function(){ var interval = setInterval(check,100); var n=0; function check(){ var times = n+1; console.warn('贴吧页面精简 by BackRunner: 延迟脚本正在执行第 ' + times + ' 次'); try{ //控制面板 console.warn('贴吧页面精简 by BackRunner: 正在创建控制面板'); createControlPanel(); } catch(e){ console.error(e); } try{ //底部信息 createFooterLayer(); } catch(e){ console.error(e); } //列表翻页监听 if (window.location.href.indexOf("tieba.baidu.com/f") !== -1){ addListenerToList(); adinListClean(); disableForumCard(); reStart(); } else { if (window.location.href.indexOf("tieba.baidu.com/p/") !== -1){ addListenerToPage(); tpointADClean(); adinPageClean(); if (noLoginProcess){ addNoLoginLZEventListener(); noLogin(); } reStart(); } else { reStart(); } } function reStart(){ n++; if (n>delayScriptRunTimes-1){ clearInterval(interval); } } } },sleepTime); } else { setTimeout(function(){ var interval = setInterval(check,100); var n = 0; function check(){ try{ //控制面板 console.warn('贴吧页面精简 by BackRunner: 正在创建控制面板'); createControlPanel(); } catch(e){ console.error(e); } try{ //底部信息 createFooterLayer(); } catch(e){ console.error(e); } n++; if (n>delayScriptRunTimes -1){ clearInterval(interval); } } }); $(document).ready(function(){ //加载计时 finishTime = new Date().getTime() - startTime; console.log('贴吧页面精简 by BackRunner: 页面加载用时: ' + finishTime); try{ //控制面板 console.warn('贴吧页面精简 by BackRunner: 正在创建控制面板'); createControlPanel(); } catch(e){ console.error(e); } try{ //底部信息 createFooterLayer(); addFinishTimeToFooter(); } catch(e){ console.error(e); } }); console.warn('贴吧页面精简 by BackRunner: 后处理脚本已跳过'); } //========================= //========================= //功能区 请勿修改下面的内容 //========================= //初始化 function initialize(){ sleepTime = initialize_var("sleepTime",300); sleepTimeWhenPageTurn = initialize_var("sleepTimeWhenPageTrun",50); postprocess = initialize_var("postprocess",true); homePageProcess = initialize_var("homePageProcess",true); groupPageProcess = initialize_var("groupPageProcess",true); noLoginProcess = initialize_var("noLoginProcess",true); homeProcess = initialize_var("homeProcess",true); isHeadimg = initialize_var("isHeadimg",false); checkrate = initialize_var("checkrate",1); delayScriptRunTimes = initialize_var("delayScriptRunTimes",6); } function initialize_var(name,defaultSet){ var obj = GM_getValue(name,defaultSet); if (obj === undefined){ obj = defaultSet; } return obj; } //css修改 function appendCSS(){ var cssText = ""; //顶部直播栏 cssText += '#video_frs_head {display: none !important;}'; //右侧会员模块 cssText += '.celebrity {display: none !important;}'; //右侧我的应用模块 cssText += '.my_app {display: none !important;}'; //热议榜 cssText += '.topic_list_box {display: none !important;}'; //广告灰色label cssText += '.label_text {display: none !important;}'; //右边一排图标 cssText += '.j_icon_slot {display: none !important;}'; //会员图标(会造成用户名左移,一定程度上影响整体美观) //cssText += '.icon_tbworld {display: none !important;}'; //您可能感兴趣的吧 cssText += '.forum_recommend {display: none !important;}'; //右上角应用中心 cssText += '.u_menu_wrap.u_appcenterEntrance_wrap {display: none !important;}'; //右上角会员官网 cssText += '.u_joinvip_wrap.vip_red.j_btn_getmember {display: none !important;}'; cssText += '.u_joinvip {display: none !important;}'; //内页顶部banner cssText += '.l_banner {display: none !important;}'; //内页成就section cssText += '.achievement_medal_section {display: none !important;}'; //顶部游戏信息 cssText += '.game-head-game-info-wrapper {display: none !important;}'; //内页送礼物按钮 cssText += '.post-foot-send-gift-btn {display: none !important;}'; //会员挽尊按钮 cssText += '.save_face_bg {display: none !important;}'; cssText += '.save_face_bg_2 {display: none !important;}'; //底部游戏开测 cssText += '#duoku_servers_list {display: none !important;}'; //右侧热门卡包 cssText += '.u9_aside {display: none !important;}'; //右侧小说人气榜 cssText += '.novel-ranking-frs-body {display: none !important;}'; //头像下面的一排图标 cssText += '.icon_wrap {display: none !important;}'; //贴吧触点推广图片(在延迟处理前预处理) cssText += '.tpoint-imgs {display: none !important;}'; //右下角炮筒 cssText += '.j-firework-sender {display: none !important;}'; //访谈直播 cssText += '.interview {display: none !important;}'; //贴内相关推荐 cssText += '.thread_recommend {display: none !important;}'; //贴内广告 cssText += '.iframe_wrapper {display: none !important;}'; //右侧贴吧作者认证 cssText += '.author-manager {display: none !important;}'; //输入框placeholder cssText += '.tb_poster_placeholder {display: none !important;}'; //图片签名档 cssText += '.j_user_sign {display: none !important;}'; //会员名牌 cssText += '.pb_nameplate {display: none !important;}'; //右侧菜单栏精简 cssText += '.tbui_fbar_props {display: none !important;}'; cssText += '.tbui_fbar_tsukkomi {display: none !important;}'; //吧主专版 cssText += '.tbui_fbar_bazhu {display: none !important;}'; //右侧可点击广告 if (window.location.href != "http://tieba.baidu.com/" && window.location.href != "http://tieba.baidu.com/#" && window.location.href != "http://tieba.baidu.com/##" && window.location.href != "http://tieba.baidu.com/###"){ cssText += '.j_click_stats {display: none !important;}'; } //右侧视频推荐 cssText += '#video_aside {display: none !important;}'; //一楼电影广告 cssText += '.tpoint-skin {display: none !important;}'; //直播页面底部弹出栏 cssText += '.attention_tip_wrap {display: none !important;}'; //底部注册/登录横条 cssText += '.guidance_fc {display: none !important;}'; //content-ad span cssText += '.content-ad {display: none !important;}'; //head ad span cssText += '.head_ad_tag {display: none !important}'; //群组页面右侧下载 if (groupPageProcess){ if (window.location.href.indexOf("tieba.baidu.com/group") != -1){ cssText += '.right {display: none !important;}'; } } //主页模块精简 if (homePageProcess){ if (window.location.href === "http://tieba.baidu.com/" || window.location.href === "http://tieba.baidu.com/#" || window.location.href === "http://tieba.baidu.com/##" || window.location.href === "http://tieba.baidu.com/###"){ //顶部 try{ if (unsafeWindow.PageData.user.is_login === 1){ cssText += '.top-sec {display: none !important;}'; } } catch (e){ console.error('贴吧页面精简 by BackRunner: 登录状态检查错误'); console.error(e); } //直播秀 cssText += '.spage_liveshow_slide {display: none !important;}'; //以下模块因为在右侧有一个下滑页面时让模块仍然保持在可视区域内的设计,单独精简一个会造成滚动页面时模块错位,所以全部精简 //乱七八糟的滚动活动模块 cssText += '#plat_act_wrapper {display: none !important;}'; //豪友俱乐部 cssText += '.member_rank {display: none !important;}'; //媒体进驻 cssText += '#adide_platform {display: none !important;}'; //贴吧娱乐 cssText += '#media_item {display: none !important;}'; //我的游戏 cssText += '#spage_game_tab_wrapper {display: none !important;}'; //公告板 cssText += '#notice_item {display: none !important;}'; } } //个人主页精简 if (homeProcess){ if (window.location.href.indexOf("tieba.baidu.com/home") !== -1){ //右侧礼物面板 cssText += ".ihome-aside-gift-center {display: none !important}"; //求婚按钮 cssText += ".userinfo-marry {display: none !important}"; //我的夺宝 cssText += ".ihome-aside-grab-treasure {display: none !important}"; //我的T豆、蓝钻 cssText += ".userinfo_scores {display: none !important}"; } } //列表页头图精简 if (isHeadimg){ if (window.location.href.indexOf("tieba.baidu.com/f") !== -1){ cssText += ".head_banner_img {display: none !important}"; cssText += ".head_ad_pop {display: none !important}"; } } //设置面板css cssText += '#backrunnerJSSetting_root {right:0 !important;} #backrunnerJSSetting_con {right:0 !important;width:200px important;}'; cssText += '#backrunnerJSSetting_con a {display:block !important;white-space:nowrap; !important}'; cssText += '#backrunnerJSSetting_con li {line-height:23px !important;display:block !important;white-space:nowrap !important;}'; cssText += '#backrunnerJSSetting_con li a {padding-top:0px !important;padding-bottom:0px !important;padding-right:1em !important;padding-left:1em !important;margin:0 !important;line-height:2.4em !important;}'; console.log('贴吧页面精简 by BackRunner: css创建完成'); if (navigator.userAgent.indexOf('Chrome') > -1){ var element = document.createElement('link'); element.rel="stylesheet"; element.type="text/css"; element.href='data:text/css,'+cssText; document.documentElement.appendChild(element); } else { if (navigator.userAgent.indexOf('Firefox') > -1){ var modStyle = document.querySelector('#modCSS'); if (modStyle === null){ modStyle = document.createElement('style'); modStyle.id = 'modCSS'; document.body.appendChild(modStyle); modStyle.innerHTML = cssText; } } console.log('贴吧页面精简 by BackRunner: css已添加'); } } //列表翻页监听 function addListenerToList(){ $('#frs_list_pager a').each(function(){ this.addEventListener('click',listPageTurnEvent); }); console.log('贴吧页面精简 by BackRunner: 列表翻页监听添加完毕'); } //列表翻页监听事件 function listPageTurnEvent(){ console.warn('贴吧页面精简 by BackRunner: 列表翻页事件触发'); setTimeout(function(){ var interval = setInterval(check,150 * checkrate); function check(){ addListenerToList(); adinListClean(); } setTimeout(function(){ addListenerToList(); adinListClean(); },sleepTime); setTimeout(function(){ addListenerToList(); adinListClean(); clearInterval(interval); },finishTime/3); },sleepTimeWhenPageTurn); } function addListenerToPage(){ $('.l_pager a').each(function(){ this.addEventListener('click',pageTurnEvent); }); console.log('贴吧页面精简 by BackRunner: 帖子翻页监听添加完毕'); } function pageTurnEvent(){ console.warn('贴吧页面精简 by BackRunner: 帖子翻页事件触发'); setTimeout(function(){ var interval = setInterval(check,150 * checkrate); function check(){ addListenerToPage(); adinPageClean(); tpointADClean(); } setTimeout(function(){ addListenerToPage(); adinPageClean(); tpointADClean(); },sleepTime); setTimeout(function(){ addListenerToPage(); adinPageClean(); tpointADClean(); clearInterval(interval); },finishTime/3); },sleepTimeWhenPageTurn); } //触点推广 function tpointADClean(){ console.log('贴吧页面精简 by BackRunner: 开始精简触点推广'); var pointad = document.getElementsByClassName('tpoint-imgs'); console.log('贴吧页面精简 by BackRunner: 抓取到的广告元素数量: '+pointad.length); for(var i=0;i