// ==UserScript== // @name 骚扰拦截 // @version 1.4.15 // @namespace airbash/AnnoyancesInterception // @homepageURL https://github.com/AirBashX/UserScript // @author airbash // @description 手机、电脑全平台通用:自动拦截或删除`下载弹窗`、`悬浮按钮`等影响用户体验的元素;长期维护:CSDN、简书、知乎、知乎专栏、百度搜索、百家号、百度贴吧、百度文库、百度新闻、新浪新闻、腾讯视频、优酷视频、爱奇艺、好看视频、哔哩哔哩、B站专栏、B站笔记、西瓜视频、抖音、丁香园、健康界、微博、新浪财经、东方财富网、电子发烧友、人民网、新京报、观察者网、澎湃新闻、凤凰新闻、网易新闻、今日头条、东方资讯、虎嗅、虎扑、豆瓣、中关村在线、太平洋电脑、太平洋汽车网、汽车之家、太平洋汽车网、taptap、it之家、360doc、开源中国、segmentfault、W3CSchool、阿里云开发者社区、腾讯云开发者社区、华为云开发者社区、36氪、雪球、天眼查、站酷、小红书、中国知网、装备前线、必应搜索、什么值得买 // @match *://*.csdn.net/* // @match *://*.jianshu.com/* // @match *://juejin.cn/* // @match *://*.zhihu.com/* // @match *://tieba.baidu.com/* // @match *://baijiahao.baidu.com/s* // @match *://mbd.baidu.com/newspage/data/* // @match *://news.baidu.com/news* // @match *://m.baidu.com/sf_baijiahao/* // @match *://view.inews.qq.com/* // @match *://xw.qq.com/* // @match *://m.sohu.com/a/* // @match *://m.v.qq.com/* // @match *://*.youku.com/* // @match *://*.iqiyi.com/* // @match *://haokan.baidu.com/* // @match *://*.1905.com/* // @match *://*.baidu.com/* // @match *://*.bilibili.com/* // @match *://3g.dxy.cn/* // @match *://www.cn-healthcare.com/* // @match *://*.sina.cn/* // @match *://m.weibo.cn/* // @match *://wap.eastmoney.com/* // @match *://mguba.eastmoney.com/* // @match *://*.ixigua.com/* // @match *://www.douyin.com/* // @match *://m.elecfans.com/* // @match *://app.people.cn/* // @match *://m.bjnews.com.cn/detail/* // @match *://*.guancha.cn/* // @match *://m.thepaper.cn/newsDetail_forward* // @match *://*.ifeng.com/* // @match *://m.163.com/* // @match *://3g.163.com/* // @match *://m.toutiao.com/* // @match *://www.toutiao.com/* // @match *://mini.eastday.com/nsa/* // @match *://m.huxiu.com/* // @match *://m.hupu.com/* // @match *://m.douban.com/* // @match *://g.pconline.com.cn/* // @match *://m.zol.com.cn/* // @match *://wap.zol.com.cn/* // @match *://www.autohome.com.cn/* // @match *://*.m.autohome.com.cn/* // @match *://m.autohome.com.cn/* // @match *://m.pcauto.com.cn/* // @match *://www.taptap.cn/* // @match *://m.taptap.cn/* // @match *://m.ithome.com/* // @match *://www.360doc.com/content/* // @match *://www.oschina.net/* // @match *://developer.aliyun.com/article/* // @match *://huaweicloud.csdn.net/* // @match *://m.36kr.com/p/* // @match *://xueqiu.com/* // @match *://segmentfault.com/q/* // @match *://www.w3cschool.cn/* // @match *://m.tianyancha.com/* // @match *://*.zcool.com.cn/* // @match *://m.ximalaya.com/* // @match *://www.xiaohongshu.com/* // @match *://wap.cnki.net/* // @match *://www.zfrontier.com/* // @match *://*.m.smzdm.com/* // @icon data:image/png;base64,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 // @run-at document-body // @grant none // @license GPL-3.0 // ==/UserScript== (function () { "use strict"; /** * 规则列表 * @type {name/url/items} */ const websites = [ { name: "CSDN", url: "csdn.net", items: [ //下载弹窗 ".weixin-shadowbox", //悬浮按钮:打开:狐猴浏览器中的bug ".feed-Sign-weixin", //悬浮按钮:APP内打开+登录/打开注册(主页) ".feed-Sign-span", //PC端:弹窗:学生认证 "#csdn-highschool-window", //PC端:登录弹窗(顶部) "#csdn-toolbar-profile-nologin", //PC端:登录弹窗(底部) ".passport-login-tip-container", ], fun: function () { /** * PC端:屏蔽登录弹窗 * @param {list} mutationsList The mutations list */ let removeLoginNotice = function (mutationsList) { for (let mutation of mutationsList) { for (let node of mutation.addedNodes) { if (document.querySelector(".passport-login-container")) { //有登陆弹窗时:模拟点击关闭按钮 let button = node.querySelector("img"); if (button) { if (LoginFlag == true) { button.click(); } else { LoginFlag = true; } return; } } } } }; let loginBtn = document.querySelector(".toolbar-btn-login>.toolbar-btn-loginfun"); //未登录: if (loginBtn) { //添加事件,不拦截 loginBtn.addEventListener("click", function () { LoginFlag = false; }); //执行监听 let observer = new MutationObserver(removeLoginNotice); observer.observe(document, { childList: true, subtree: true }); } //移动版登录弹窗 if (document.querySelector(".toolbarBack")) { addStyle(".passport-login-container {display: none !important}"); } }, }, { name: "简书", url: "jianshu.com", items: [ //下载弹窗 ".download-app-guidance", //悬浮按钮:打开App,看更多相似好文 ".call-app-btn", //悬浮按钮:打开App,看更多好文(首页) ".index_call-app-btn", //PC端:透明遮挡 "._23ISFX-mask", //PC端:登录弹窗 "._23ISFX-wrap", ], overflow: true, }, { name: "掘金", url: "juejin.cn", items: [ //悬浮按钮:APP内打开 ".open-button", //下载弹窗 ".app-open-drawer", //PC端:下方拓展弹窗(主页) ".recommend-box", //PC端:登录弹窗(右上角) ".login-popover", //PC端:登录弹窗(右下角) ".bottom-login-guide", ], overflow: true, }, { name: "知乎发现页", url: "www.zhihu.com/explore", items: [ //PC端:登录按钮(发现页) ".ExploreHomePage-specialsLogin", ], fun: function () { //发现页:热点和问题高度保持一致; if (location.href.includes("www.zhihu.com/explore")) { addStyle(".ExploreHomePage-square > div:nth-child(3){margin: 0px}"); } }, }, { name: "知乎", url: "zhihu.com", items: [ //悬浮按钮:是否在知乎app内阅读全文 ".MobileModal-wrapper", //悬浮按钮:打开知乎(主页),打开 ".OpenInAppButton", ], overflow: true, fun: function () { //PC端拦截登录弹窗 if (!/Mobile|Android|iPhone/i.test(navigator.userAgent)) { window.addEventListener("DOMContentLoaded", function () { let loginBtn = document.querySelector(".css-1rwz7is"); //检验是否登录 if (loginBtn) { //执行监听 let observer = new MutationObserver(removeLoginNotice); observer.observe(document, { childList: true, subtree: true }); onload = function () { loginBtn.addEventListener("click", function () { LoginFlag = false; }); }; } }); /** * 删除登录弹窗 * * @param {MutationRecord[]} mutationsList The mutations list * @param {MutationObserver} observer The observer */ function removeLoginNotice(mutationsList) { for (let mutation of mutationsList) { for (let node of mutation.addedNodes) { //有登陆弹窗1时:模拟点击关闭按钮 if (node.querySelector(".signFlowModal")) { let button = node.querySelector(".Button.Modal-closeButton.Button--plain"); if (button) { if (LoginFlag == true) { button.click(); } else { LoginFlag = true; } return; } } //拦截登录弹窗2 if (getXpath('//button[text()="立即登录/注册"]', node)) { getXpath('//button[text()="立即登录/注册"]', node).parentElement.parentElement.remove(); } } } } } }, }, { name: "百度", url: "baidu.com", items: [ //悬浮按钮:打开百度 "#J-invoke-baiduApp-float", ], }, { name: "百度贴吧", url: "tieba.baidu.com", items: [ //悬浮按钮:打开百度贴吧 ".nav-bar-bottom", ], }, { name: "百度文库1", url: "/wk.baidu.com/view/", items: [ //悬浮按钮(上方):百度文库 ".wk-student-defense", ], }, { name: "百度文库2", url: "tanbi.baidu.com/h5apptopic/browse/", items: [ //悬浮按钮(上方):百度文库 ".wk-student-limit-jump", ".bartop", //悬浮按钮(下方):下载App,继续阅读 ".wk-bottom-btn", ], }, { name: "百家号", url: "baijiahao.baidu.com/s", items: [ //悬浮按钮:百度APP内打开 "#bdrainrwDragButton", ], }, { name: "百度资讯+百度首页", url: "mbd.baidu.com/newspage/data", items: [ //悬浮按钮:百度APP内打开 "#bdrainrwDragButton", //悬浮按钮:百度APP内播放 ".drag-bottom", ], }, { name: "腾讯新闻1", url: "view.inews.qq.com/", items: [ //固定按钮:打开 ".slider-top-bar_sliderWrapper__1Nize", //悬浮按钮:打开腾讯新闻,看更多热点资讯 ".bottom-bar_buttonWrap__NXBe-", ], }, { name: "腾讯新闻2", url: "xw.qq.com/", items: [ //固定按钮:打开(首页) "#opeApp", ], }, { name: "腾讯视频", url: "m.v.qq.com", items: [ //下载弹窗 ".at-app-banner", //打开APP查看高清内容 ".open_app_bottom", ], }, { name: "优酷视频", url: "youku.com", items: [ //下载弹窗 ".callEnd_box", //悬浮按钮(主页):打开优酷APP更流畅 ".callEnd_fixed_box", //悬浮按钮:打开优酷APP更流畅 ".undefined", //悬浮按钮:红包 ".Corner-container", ], }, { name: "爱奇艺", url: "iqiyi.com/", items: [ //下载弹窗 ".m-iqyGuide-layer", //打开爱奇艺APP,看精彩视频 "[class^=ChannelHomeBanner]", //PC端:登录提示上侧 ".pl__1", ], }, { name: "好看视频", url: "haokan.baidu.com/", items: [ //悬浮按钮:打开好看app(中间) ".open-app-top", //固定文字:打开APP(多) ".top-video-card-img-app", //固定按钮:下载APP(视频播放时) ".video-player-download-tips", //固定按钮:打开(底部) ".open-app-bottom", //固定按钮:打开(底部:个别) ".NewOpenApp", //PC端固定按钮:下载APP(视频暂停时) ".player-lefttip-inner", //PC端登录提示:登录提示 "#passport-login-pop", //PC端登录提示:朦胧背板 ".pop-mask", //PC端登录提示:悬浮提示 ".page-top-rightinfo-popover", ], }, { name: "m1905电影网", url: "1905.com/", items: [ //悬浮弹窗:打开app "#popupModule", //悬浮按钮: ".open-link", ], }, { name: "百度搜索", url: "baidu.com", items: [ //搜索结果:小程序 "[srcid=xcx_multi]", //搜索结果:百度手机助手 "[srcid=app_mobile_simple]", //搜索结果:百度手机助手:安全下载 "[srcid=app_mobile_simple_safety]", //搜索结果:百度应用搜索(IOS) "[srcid=app_mobile_ios]", ], }, { name: "哔哩哔哩", url: "bilibili.com", items: [ //悬浮按钮:打开app,看你感兴趣的内容(主页) ".m-home-float-openapp", //悬浮按钮:打开app(UP主页) ".m-space-float-openapp", //悬浮按钮:打开app,看高清内容(视频全屏) ".mplayer-widescreen-callapp", //悬浮按钮:bilibili内打开(底部) ".m-float-openapp", //悬浮弹窗:bilibili内打开 ".openapp-dialog", //固定按钮:播放时下载 ".mplayer-widescreen-callapp", //PC端:登录提示(右下角) ".lt-row", //PC端:登录提示(右上角) ".login-panel-popover:has(.login-tip-content)", //PC端:登录提示(播放器) ".bpx-player-toast-wrap", //PC端:登录提示(右上角) "div:has(.unlogin-popover-avatar)", //PC端:滑动提示(正下方:首次) ".trial-feed-wrap", ], fun: function () { let add; function mutationCallback(record, observer) { //已确定登录:停止监听 let login = document.querySelector(".header-entry-mini"); if (login) { observer.disconnect(); } //已确定未登录:执行函数 let loginBtn = document.querySelector(".header-login-entry"); if (loginBtn) { if (!add) { console.log("脚本注入成功"); //添加事件:不拦截 loginBtn.addEventListener("click", function () { LoginFlag = false; }); add = true; } for (let arr of record) { for (let node of arr.addedNodes) { let button; try { button = node.querySelector(".bili-mini-close-icon"); } catch (error) { /* empty */ } if (button) { //有登陆弹窗时:模拟点击关闭按钮 if (LoginFlag == true) { console.log(LoginFlag); console.log("自动拦截"); button.click(); console.log("恢复播放"); let video = document.querySelector(".bpx-player-video-wrap video"); video.play(); } else { console.log(LoginFlag); console.log("手动拦截"); LoginFlag = true; } return; } } } } } let observer = new MutationObserver(mutationCallback); observer.observe(document, { childList: true, subtree: true }); }, }, { name: "B站专栏", url: "bilibili.com/read/", items: [ //悬浮按钮:打开app "#app>div>bili-open-app.float-btn", //PC端:登录提示 "div:has(.unlogin-popover-avatar)", ], }, { name: "B站笔记", url: "bilibili.com/opus/", items: [ //悬浮按钮:打开App,看更多精彩内容 ".float-btn", //悬浮弹窗:打开APP ".openapp-dialog", //PC端:登录提示 "div:has(.unlogin-popover-avatar)", ], }, { name: "西瓜视频", url: "ixigua.com", items: [ //打开弹窗:打开 ".landing_guide", //PC端:登录提示 ".loginBenefitNotification", //悬浮按钮:打开西瓜视频,看全网超清视频 ".xigua-download", ], }, { name: "抖音电脑版", url: "www.douyin.com", items: [ //PC端:下载电脑客户端 "#douyin-web-download-guide-container", //PC端:右下角登录提示(画质) ".login-clarity-new", //PC端:登陆后查看评论 "#related-video-card-login-guide", //PC端:底部登录提示 ".wwNZW6za", ], fun: function () { //登陆后查看评论模糊 addStyle("._61cgy6j3{filter: none !important}"); //拦截登录弹窗 onload = function () { //增加点击事件 let inter = setInterval(() => { let loginBtn = getXpath('//div[text()="登录"] | //p[text()="登录"]', document).parentElement; if (loginBtn) { loginBtn.addEventListener("click", function () { LoginFlag = false; }); clearInterval(inter); } }, 1000); }; /** * Removes a login notice. * * @param {MutationRecord[]} mutationsList The mutations list * @param {MutationObserver} observer The observer */ let removeLoginNotice = function (mutationsList) { for (let mutation of mutationsList) { for (let node of mutation.addedNodes) { if (node.nodeType == Node.ELEMENT_NODE) { let closeBtn = node.querySelector(".dy-account-close"); //关闭登录弹窗 if (closeBtn) { if (LoginFlag == true) { closeBtn.click(); } else { LoginFlag = true; } } return; } } } }; //执行监听 let observer = new MutationObserver(removeLoginNotice); observer.observe(document, { childList: true, subtree: true }); }, }, { name: "丁香园", url: "3g.dxy.cn", items: [ //悬浮按钮:APP内打开 "[class^=fixedBtn]", //悬浮按钮:App内打开(主页) ".wrap", ], }, { name: "健康界", url: "www.cn-healthcare.com/", items: [ //悬浮按钮:打开(底部滚动) "footer", ], }, { name: "微博", url: "m.weibo.cn", items: [ //悬浮按钮:在微博内打开(百度热议) ".app-btn-box", //悬浮按钮:登录/注册 ".login-btn", //小程序 ".wrap", ], }, { name: "新浪新闻", url: "sina.cn/", items: [ //悬浮按钮:打开APP ".callApp_fl_btn", ], }, { name: "新浪财经", url: "sina.cn/", items: [ //悬浮弹窗:立即更新(主页:首次访问) "#SFA_newVersion_pop", //悬浮按钮:打开App中查看(主页:底部) ".m-client-call2", //固定按钮:立即登录(主页:资讯) ".login-box", //悬浮按钮:立即查看(资讯:底部,首次访问) ".wap-msg-bar-wap", //悬浮按钮:去APP听语音播报(资讯:中间) ".broadcast", //悬浮按钮:打开APP(资讯:顶部,有bug) ".m-sentiment-blk", //悬浮按钮:打开APP(资讯:底部) ".m-guss-caijing", //固定按钮:立即体验(资讯:底部) "#norm_qrcode_link_auto", //悬浮按钮:打开APP(子栏1:底部) "#subPage_bottom_callup_btn", //悬浮按钮:打开APP(子栏2:底部) "#__callup_bottom_new", //悬浮按钮:打开APP(子栏2:顶部,有bug) ".js-app-header", ], fun: function () { //修复上述规则产生的bug let inter = setInterval(() => { let item = document.querySelector(".compatibility-mode"); if (item.style.marginTop == "0px") { clearInterval(inter); } else { item.style.marginTop = "0px"; } }, 1000); }, }, { name: "东方财富网", url: "wap.eastmoney.com/", items: [ //悬浮按钮:打开APP(顶部) ".fixed_top", //固定按钮:下载(主页:顶部) "#IndexDT", //悬浮按钮:打开下载(主页:顶部) ".emwapas_xldt_fixed", //悬浮按钮:打开APP(主页:底部) ".open-inapp", ], }, { name: "东方财富网:股吧", url: "mguba.eastmoney.com/", items: [ //悬浮弹窗:打开APP "#appbox", //悬浮按钮:东方财富APP内打开(底部) "#open_app", ], }, { name: "电子发烧友", url: "m.elecfans.com", items: [ //悬浮按钮:主页右侧 ".hm_quick", //悬浮按钮:登陆/注册 ".login-reg-fixed", //悬浮按钮:上方打开app ".open_app", ], }, { name: "人民网", url: "app.people.cn", items: [ //悬浮按钮:打开(底部) ".app-bot-wrap", ], }, { name: "新京报", url: "m.bjnews.com.cn/detail/", items: [ //悬浮按钮:立即打开(顶部) ".xjb-top", ], }, { name: "观察者网", url: "guancha.cn", items: [ //固定按钮:点击下载(顶部) ".g_header44", //悬浮按钮:APP专享(底部) ".g_swiper_container", ], }, { name: "澎湃新闻", url: "m.thepaper.cn/newsDetail_forward", items: [ //悬浮按钮:新闻滚条(底部) "[class^=index_footer_banner]", "[.index_footer_banner__Mcr_R]", ], }, { name: "凤凰新闻", url: "ifeng.com", items: [ //悬浮按钮:立即打开(主页) "[class^=index_fixSlide_]", //悬浮按钮:滚动新闻(新闻底部) "[class^=index_bottom_box_]", //悬浮按钮:立即打开(财经底部) "[class^=index_bottomSlide_]", //悬浮按钮:滚动新闻(卫视底部) "[class^=index_fixBottom_]", ], }, { name: "网易新闻", url: "3g.163.com", items: [ //固定按钮:App内打开(底部) ".backflow-floating", ], }, { name: "网易新闻", url: "m.163.com", items: [ //固定按钮:App内打开(底部) ".backflow-floating", ], }, { name: "搜狐", url: "m.sohu.com/a/", items: [ //悬浮按钮:打开APP "#CallAppContainer", ".CallAppContainer", ], }, { name: "今日头条:移动端", url: "m.toutiao.com/", items: [ //悬浮按钮:App内打开(底部) ".m-bottom-container", //悬浮按钮:去首页(文章) ".m-index-tag" ], }, { name: "今日头条:PC端", url: "www.toutiao.com/", items: [ //悬浮弹窗:添加今日头条到电脑桌面 ".add-panel", //悬浮弹窗:扫码下载今日头条 "download-panel" ], }, { name: "东方资讯", url: "mini.eastday.com/nsa/", items: [ //PC端:悬浮弹窗:添加到桌面 "#dftt-message-wrapper", ], }, { name: "虎嗅", url: "m.huxiu.com", items: [ //悬浮按钮:go!(主页) ".guide-wrap", //悬浮按钮:打开(顶部) ".js-top-fixed", //悬浮按钮:打开(底部) ".bottom-open-app-btn", ], }, { name: "虎扑", url: "m.hupu.com", items: [ //悬浮按钮:App内打开 ".open-hupu", ], }, { name: "豆瓣", url: "m.douban.com", items: [ //固定按钮:用App打开(电影详情页) ".subject-banner", //悬浮按钮:豆瓣APP内打开 ".talion-nav-footer", ], }, { name: "太平洋电脑", url: "g.pconline.com.cn", items: [ //悬浮按钮:打开app(底部) ".btnForAppOpenImg", //悬浮按钮:打开知科技App ".btnForAppOpenA", //固定按钮:立即打开(底部) ".WakeUptop", //悬浮按钮:打开(底部) ".page-float-box", ], }, { name: "中关村在线", url: "m.zol.com.cn", items: [ //悬浮按钮:打开APP ".cover-back_s", //悬浮按钮:APP内打开 "#bottom-fixed-wrapper > span", ], }, { name: "中关村在线2(报价+论坛)", url: "wap.zol.com.cn", items: [ //悬浮按钮:打开APP ".cover-back_s", //悬浮按钮:APP内打开 "#bottom-fixed-wrapper > span", ], }, { name: "汽车之家PC版", url: "www.autohome.com.cn", items: [ //悬浮按钮:登录提示(PC端) "#loginGuide", ], }, { name: "汽车之家移动版", url: "m.autohome.com.cn", items: [ //悬浮按钮: App内打开 "#float_new_button", ], }, { name: "太平洋汽车", url: "m.pcauto.com.cn/", items: [ //悬浮弹窗: App内打开 "#home-bottom-half-dialog", //悬浮按钮: 轮播评论 "#dmListOuter", ], }, { //www.taptap.com name: "taptap", url: "www.taptap.cn", items: [ //悬浮按钮:打开taptap ".open-app-global-float", ], }, { //m.taptap.com name: "taptap", url: "m.taptap.cn", items: [ //悬浮按钮:打开taptap查看更多精彩内容 ".app-download__wrapper", //苹果端:悬浮按钮:添加到桌面 ".show-add-to-screen", //苹果端:固定按钮:添加到桌面 ".add-to-screen-wrap", ], }, { //https://m.ithome.com/ name: "it之家", url: "m.ithome.com", items: [ //固定按钮(底部):立即打开 ".open-app-banner", ], }, { name: "360docPC版", url: "www.360doc.com/content/", items: [ //登录弹窗 "iframe", //登录弹窗:朦胧模板 "iframe~div", ], }, { name: "开源中国", url: "www.oschina.net", items: [ //悬浮按钮(底部):立即打开 ".app-download-banner-box", ], }, { name: "segmentfault思否", url: "segmentfault.com/q", items: [ //登录弹窗 ".modal-dialog-centered", ], }, { name: "阿里云开发者社区", url: "developer.aliyun.com/article/", items: [ //阿里云App内打开 ".app-fixed-btn", ], }, { name: "华为云开发者社区", url: "huaweicloud.csdn.net/", items: [ //加入社区 ".user-desc-fix", ], }, { //https://m.36kr.com/p/1964588951470856 name: "36氪", url: "m.36kr.com/p/", items: [ //悬浮按钮(顶部):打开 ".article-top-swiper-goapp", ], }, { name: "雪球", url: "xueqiu.com/", items: [ //悬浮按钮:加群学习(主页) ".FloatDownloadButton_mobile_xiaoxue-button_1jZ", //悬浮按钮:加群学习(文章) ".index_xiaoxue-button_1Av", //悬浮按钮:登录提示 ".widget__download-app" ], fun: function () { //悬浮按钮:打开app(话题) document.onreadystatechange = function () { if (document.readyState === "complete") { document.querySelector("[class^=FloatDownloadButton_mobile_openapp__fix_]").remove(); } }; /** * Removes a login notice. * * @param {MutationRecord[]} mutationsList The mutations list * @param {MutationObserver} observer The observer */ let removeLoginNotice = function (mutationsList) { for (let mutation of mutationsList) { for (let node of mutation.addedNodes) { let closeBtn = document.querySelector(".modal__login .close"); //关闭登录弹窗 if (LoginFlag == true) { closeBtn.click(); } else { LoginFlag == true; } return; } } }; //拦截登录弹窗 document.addEventListener("DOMContentLoaded", function () { let loginBtn = document.querySelector(".loginBtn"); //检验是否登录 if (loginBtn.textContent === "登录") { //增加点击事件 loginBtn.addEventListener("click", function () { LoginFlag = false; //未知bug:导致第一次点击无法生效,所以这里再点击一次 loginBtn.click(); }); } //执行监听 let observer = new MutationObserver(removeLoginNotice); observer.observe(document, { childList: true, subtree: true }); }); }, }, { name: "天眼查", url: "m.tianyancha.com/", items: [ //悬浮按钮:打开app(主页) ".swiper-container", //悬浮按钮:下载APP(企业) "#banner_mobile_v2", ], }, { name: "站酷移动版", url: "m.zcool.com.cn/", items: [ //悬浮按钮:打开app(主页) ".bottom-App", //悬浮按钮:打开app "[class^=wapHeader_footer-button]", ], }, { name: "站酷PC版", url: "www.zcool.com.cn/", items: [ //登录按钮 ".sideUnlogin", //登录弹窗 ".ReactModal__Overlay--after-open:not(.ReactModal__Overlay_content-page)", ], fun: function () { //登录弹窗导致的页面无法滑动 addStyle("html,body {overscroll-behavior: unset !important;overflow: unset !important;}"); }, }, { name: "小红书", url: "www.xiaohongshu.com", items: [ //App内打开(视频) ".bottom-button-box", //App内打开(笔记) ".bottom-bar", ], fun: function () { let mo = new MutationObserver(function (mutations) { for (let mutation of mutations) { for (let node of mutation.addedNodes) { let button = node.querySelector(".icon-btn-wrapper"); if (button) { if (LoginFlag) { button.click(); } else { LoginFlag = true; } return; } } } }); let loginBtn = document.querySelector(".login-btn"); if (loginBtn) { loginBtn.addEventListener( "click", function () { LoginFlag = false; }, true, ); mo.observe(document, { childList: true, subtree: true }); } }, }, { name: "喜马拉雅", url: "m.ximalaya.com/", items: [ //悬浮按钮:打开APP,完整收听1 ".album-btn-container", //悬浮按钮:打开APP,完整收听2 ".btn-open", //打开APP2 ".downloadButton", ], }, { //https://wap.cnki.net/touch/web/Journal/Article/WLAQ202302061.html name: "中国知网", url: "wap.cnki.net/", items: [ //App内打开 ".Appopen", //滚动新闻 "#fix-bottom", ], }, { name: "zfrontier", url: "www.zfrontier.com", items: [ //App内打开 ".app-opener", ], }, { name: "必应搜索", url: "bing.com", items: [ //必应中打开(Chrome中专属) ".bnp_rich_div_visible", ], }, { name: "w3cschool", url: "www.w3cschool.cn/", items: [], fun: function () { //复制文件时的弹窗 onload = function () { let mo = new MutationObserver(function (mutations) { for (let mutation of mutations) { for (let node of mutation.addedNodes) { if (node.nodeName == "DIV" && node.className == "") { node.style.display = "none"; } } } }); mo.observe(document, { childList: true, subtree: true }); }; }, }, { name: "什么值得买", url: "m.smzdm.com/", items: [ //app内打开 ".footer-banner-wrap", //国内好价:qpp内打开 ".wrapper", ".foot-banner", ], }, ]; /** * 主体部分 */ for (let website of websites) { if (location.href.indexOf(website.url) != -1) { //隐藏/拦截骚扰元素 if (website.items) { for (let item of website.items) { addStyle(item + "{display: none !important}"); } } //修复移动版页面不允许滑动 if (website.overflow) { addStyle("body{overflow: auto !important}"); } //执行额外方案 if (website.fun) { website.fun(); } } } //默认监听 let LoginFlag = true; //默认添加 let ClickFlag = true; /** * 通过内容(xpath)获取节点 * * @param {string} xpath 内容 * @param {Node} parent 父元素 * @return {Node} 元素 */ function getXpath(xpath, parent) { let xpathResult = document.evaluate(xpath, parent || document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); return xpathResult.singleNodeValue; } /** * 向head标签内添加样式 * * @param {string} text CSS样式 */ function addStyle(text) { let css = document.createElement("style"); css.innerText += text; document.head.append(css); } })();