骚扰拦截 修改

手机、电脑全平台通用:自动拦截或删除`下载弹窗`、`悬浮按钮`等影响用户体验的元素;长期维护:CSDN、简书、知乎、知乎专栏、百度搜索、百家号、百度贴吧、百度文库、百度新闻、新浪新闻、腾讯视频、优酷视频、爱奇艺、好看视频、哔哩哔哩、B站专栏、B站笔记、西瓜视频、抖音、丁香园、健康界、微博、新浪财经、东方财富网、电子发烧友、人民网、新京报、观察者网、澎湃新闻、凤凰新闻、网易新闻、今日头条、东方资讯、虎嗅、虎扑、豆瓣、中关村在线、太平洋电脑、太平洋汽车网、汽车之家、太平洋汽车网、taptap、it之家、360doc、开源中国、segmentfault、W3CSchool、阿里云开发者社区、腾讯云开发者社区、华为云开发者社区、36氪、雪球、天眼查、站酷、小红书、中国知网、装备前线、必应搜索、什么值得买

  1. // ==UserScript==
  2. // @name 骚扰拦截 修改
  3. // @version 1.4.15
  4. // @namespace airbash/AnnoyancesInterception
  5. // @homepageURL https://github.com/AirBashX/UserScript
  6. // @author airbash
  7. // @description 手机、电脑全平台通用:自动拦截或删除`下载弹窗`、`悬浮按钮`等影响用户体验的元素;长期维护:CSDN、简书、知乎、知乎专栏、百度搜索、百家号、百度贴吧、百度文库、百度新闻、新浪新闻、腾讯视频、优酷视频、爱奇艺、好看视频、哔哩哔哩、B站专栏、B站笔记、西瓜视频、抖音、丁香园、健康界、微博、新浪财经、东方财富网、电子发烧友、人民网、新京报、观察者网、澎湃新闻、凤凰新闻、网易新闻、今日头条、东方资讯、虎嗅、虎扑、豆瓣、中关村在线、太平洋电脑、太平洋汽车网、汽车之家、太平洋汽车网、taptap、it之家、360doc、开源中国、segmentfault、W3CSchool、阿里云开发者社区、腾讯云开发者社区、华为云开发者社区、36氪、雪球、天眼查、站酷、小红书、中国知网、装备前线、必应搜索、什么值得买
  8.  
  9.  
  10. // @match *://*.jianshu.com/*
  11. // @match *://zhuanlan.zhihu.com/*
  12.  
  13.  
  14. // @icon data:image/png;base64,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
  15. // @run-at document-body
  16. // @grant none
  17. // @license GPL-3.0
  18. // ==/UserScript==
  19.  
  20. (function () {
  21. "use strict";
  22.  
  23. /**
  24. * 规则列表
  25. * @type {name/url/items}
  26. */
  27. const websites = [
  28. {
  29. name: "CSDN",
  30. url: "csdn.net",
  31. items: [
  32. //下载弹窗
  33. ".weixin-shadowbox",
  34. //悬浮按钮:打开:狐猴浏览器中的bug
  35. ".feed-Sign-weixin",
  36. //悬浮按钮:APP内打开+登录(不可用)/打开注册(不可用)(主页)
  37. ".feed-Sign-span",
  38. //PC端:弹窗:学生认证
  39. "#csdn-highschool-window",
  40. //PC端:登录(不可用)弹窗(顶部)
  41. "#csdn-toolbar-profile-nologin",
  42. //PC端:登录(不可用)弹窗(底部)
  43. ".passport-login-tip-container",
  44. ],
  45. fun: function () {
  46. /**
  47. * PC端:屏蔽登录(不可用)弹窗
  48. * @param {list} mutationsList The mutations list
  49. */
  50. let removeLoginNotice = function (mutationsList) {
  51. for (let mutation of mutationsList) {
  52. for (let node of mutation.addedNodes) {
  53. if (document.querySelector(".passport-login-container")) {
  54. //有登陆弹窗时:模拟点击关闭按钮
  55. let button = node.querySelector("img");
  56. if (button) {
  57. if (LoginFlag == true) {
  58. button.click();
  59. } else {
  60. LoginFlag = true;
  61. }
  62. return;
  63. }
  64. }
  65. }
  66. }
  67. };
  68.  
  69. let loginBtn = document.querySelector(".toolbar-btn-login>.toolbar-btn-loginfun");
  70. //未登录(不可用):
  71. if (loginBtn) {
  72. //添加事件,不拦截
  73. loginBtn.addEventListener("click", function () {
  74. LoginFlag = false;
  75. });
  76. //执行监听
  77. let observer = new MutationObserver(removeLoginNotice);
  78. observer.observe(document, { childList: true, subtree: true });
  79. }
  80. //移动版登录(不可用)弹窗
  81. if (document.querySelector(".toolbarBack")) {
  82. addStyle(".passport-login-container {display: none !important}");
  83. }
  84. },
  85. },
  86. {
  87. name: "简书",
  88. url: "jianshu.com",
  89. items: [
  90. //下载弹窗
  91. ".download-app-guidance",
  92. //悬浮按钮:打开App,看更多相似好文
  93. ".call-app-btn",
  94. //悬浮按钮:打开App,看更多好文(首页)
  95. ".index_call-app-btn",
  96. //PC端:透明遮挡
  97. "._23ISFX-mask",
  98. //PC端:登录(不可用)弹窗
  99. "._23ISFX-wrap",
  100. ],
  101. overflow: true,
  102. },
  103. {
  104. name: "掘金",
  105. url: "juejin.cn",
  106. items: [
  107. //悬浮按钮:APP内打开
  108. ".open-button",
  109. //下载弹窗
  110. ".app-open-drawer",
  111. //PC端:下方拓展弹窗(主页)
  112. ".recommend-box",
  113. //PC端:登录(不可用)弹窗(右上角)
  114. ".login-popover",
  115. //PC端:登录(不可用)弹窗(右下角)
  116. ".bottom-login-guide",
  117. ],
  118. overflow: true,
  119. },
  120. {
  121. name: "知乎发现页",
  122. url: "www.zhihu.com/explore",
  123. items: [
  124. //PC端:登录(不可用)按钮(发现页)
  125. ".ExploreHomePage-specialsLogin",
  126. ],
  127. fun: function () {
  128. //发现页:热点和问题高度保持一致;
  129. if (location.href.includes("www.zhihu.com/explore")) {
  130. addStyle(".ExploreHomePage-square > div:nth-child(3){margin: 0px}");
  131. }
  132. },
  133. },
  134. {
  135. name: "知乎",
  136. url: "zhihu.com",
  137. items: [
  138. //悬浮按钮:是否在知乎app内阅读全文
  139. ".MobileModal-wrapper",
  140. //悬浮按钮:打开知乎(主页),打开
  141. ".OpenInAppButton",
  142. ],
  143. overflow: true,
  144. fun: function () {
  145. //PC端拦截登录(不可用)弹窗
  146. if (!/Mobile|Android|iPhone/i.test(navigator.userAgent)) {
  147. window.addEventListener("DOMContentLoaded", function () {
  148. let loginBtn = document.querySelector(".css-1rwz7is");
  149. //检验是否登录(不可用)
  150. if (loginBtn) {
  151. //执行监听
  152. let observer = new MutationObserver(removeLoginNotice);
  153. observer.observe(document, { childList: true, subtree: true });
  154.  
  155. onload = function () {
  156. loginBtn.addEventListener("click", function () {
  157. LoginFlag = false;
  158. });
  159. };
  160. }
  161. });
  162. /**
  163. * 删除登录(不可用)弹窗
  164. *
  165. * @param {MutationRecord[]} mutationsList The mutations list
  166. * @param {MutationObserver} observer The observer
  167. */
  168. function removeLoginNotice(mutationsList) {
  169. for (let mutation of mutationsList) {
  170. for (let node of mutation.addedNodes) {
  171. //有登陆弹窗1时:模拟点击关闭按钮
  172. if (node.querySelector(".signFlowModal")) {
  173. let button = node.querySelector(".Button.Modal-closeButton.Button--plain");
  174. if (button) {
  175. if (LoginFlag == true) {
  176. button.click();
  177. } else {
  178. LoginFlag = true;
  179. }
  180. return;
  181. }
  182. }
  183. //拦截登录(不可用)弹窗2
  184. if (getXpath('//button[text()="立即登录(不可用)/注册(不可用)"]', node)) {
  185. getXpath('//button[text()="立即登录(不可用)/注册(不可用)"]', node).parentElement.parentElement.remove();
  186. }
  187. }
  188. }
  189. }
  190. }
  191. },
  192. },
  193. {
  194. name: "百度",
  195. url: "baidu.com",
  196. items: [
  197. //悬浮按钮:打开百度
  198. "#J-invoke-baiduApp-float",
  199. ],
  200. },
  201. {
  202. name: "百度贴吧",
  203. url: "tieba.baidu.com",
  204. items: [
  205. //悬浮按钮:打开百度贴吧
  206. ".nav-bar-bottom",
  207. ],
  208. },
  209. {
  210. name: "百度文库1",
  211. url: "/wk.baidu.com/view/",
  212. items: [
  213. //悬浮按钮(上方):百度文库
  214. ".wk-student-defense",
  215. ],
  216. },
  217. {
  218. name: "百度文库2",
  219. url: "tanbi.baidu.com/h5apptopic/browse/",
  220. items: [
  221. //悬浮按钮(上方):百度文库
  222. ".wk-student-limit-jump",
  223. ".bartop",
  224. //悬浮按钮(下方):下载App,继续阅读
  225. ".wk-bottom-btn",
  226. ],
  227. },
  228. {
  229. name: "百家号",
  230. url: "baijiahao.baidu.com/s",
  231. items: [
  232. //悬浮按钮:百度APP内打开
  233. "#bdrainrwDragButton",
  234. ],
  235. },
  236. {
  237. name: "百度资讯+百度首页",
  238. url: "mbd.baidu.com/newspage/data",
  239. items: [
  240. //悬浮按钮:百度APP内打开
  241. "#bdrainrwDragButton",
  242. //悬浮按钮:百度APP内播放
  243. ".drag-bottom",
  244. ],
  245. },
  246. {
  247. name: "腾讯新闻1",
  248. url: "view.inews.qq.com/",
  249. items: [
  250. //固定按钮:打开
  251. ".slider-top-bar_sliderWrapper__1Nize",
  252. //悬浮按钮:打开腾讯新闻,看更多热点资讯
  253. ".bottom-bar_buttonWrap__NXBe-",
  254. ],
  255. },
  256. {
  257. name: "腾讯新闻2",
  258. url: "xw.qq.com/",
  259. items: [
  260. //固定按钮:打开(首页)
  261. "#opeApp",
  262. ],
  263. },
  264. {
  265. name: "腾讯视频",
  266. url: "m.v.qq.com",
  267. items: [
  268. //下载弹窗
  269. ".at-app-banner",
  270. //打开APP查看高清内容
  271. ".open_app_bottom",
  272. ],
  273. },
  274. {
  275. name: "优酷视频",
  276. url: "youku.com",
  277. items: [
  278. //下载弹窗
  279. ".callEnd_box",
  280. //悬浮按钮(主页):打开优酷APP更流畅
  281. ".callEnd_fixed_box",
  282. //悬浮按钮:打开优酷APP更流畅
  283. ".undefined",
  284. //悬浮按钮:红包
  285. ".Corner-container",
  286. ],
  287. },
  288. {
  289. name: "爱奇艺",
  290. url: "iqiyi.com/",
  291. items: [
  292. //下载弹窗
  293. ".m-iqyGuide-layer",
  294. //打开爱奇艺APP,看精彩视频
  295. "[class^=ChannelHomeBanner]",
  296. //PC端:登录(不可用)提示上侧
  297. ".pl__1",
  298. ],
  299. },
  300. {
  301. name: "好看视频",
  302. url: "haokan.baidu.com/",
  303. items: [
  304. //悬浮按钮:打开好看app(中间)
  305. ".open-app-top",
  306. //固定文字:打开APP(多)
  307. ".top-video-card-img-app",
  308. //固定按钮:下载APP(视频播放时)
  309. ".video-player-download-tips",
  310. //固定按钮:打开(底部)
  311. ".open-app-bottom",
  312. //固定按钮:打开(底部:个别)
  313. ".NewOpenApp",
  314. //PC端固定按钮:下载APP(视频暂停时)
  315. ".player-lefttip-inner",
  316. //PC端登录(不可用)提示:登录(不可用)提示
  317. "#passport-login-pop",
  318. //PC端登录(不可用)提示:朦胧背板
  319. ".pop-mask",
  320. //PC端登录(不可用)提示:悬浮提示
  321. ".page-top-rightinfo-popover",
  322. ],
  323. },
  324. {
  325. name: "m1905电影网",
  326. url: "1905.com/",
  327. items: [
  328. //悬浮弹窗:打开app
  329. "#popupModule",
  330. //悬浮按钮:
  331. ".open-link",
  332. ],
  333. },
  334. {
  335. name: "百度搜索",
  336. url: "baidu.com",
  337. items: [
  338. //搜索结果:小程序
  339. "[srcid=xcx_multi]",
  340. //搜索结果:百度手机助手
  341. "[srcid=app_mobile_simple]",
  342. //搜索结果:百度手机助手:安全下载
  343. "[srcid=app_mobile_simple_safety]",
  344. //搜索结果:百度应用搜索(IOS)
  345. "[srcid=app_mobile_ios]",
  346. ],
  347. },
  348. {
  349. name: "哔哩哔哩",
  350. url: "bilibili.com",
  351. items: [
  352. //悬浮按钮:打开app,看你感兴趣的内容(主页)
  353. ".m-home-float-openapp",
  354. //悬浮按钮:打开app(UP主页)
  355. ".m-space-float-openapp",
  356. //悬浮按钮:打开app,看高清内容(视频全屏)
  357. ".mplayer-widescreen-callapp",
  358. //悬浮按钮:bilibili内打开(底部)
  359. ".m-float-openapp",
  360. //悬浮弹窗:bilibili内打开
  361. ".openapp-dialog",
  362. //固定按钮:播放时下载
  363. ".mplayer-widescreen-callapp",
  364. //PC端:登录(不可用)提示(右下角)
  365. ".lt-row",
  366. //PC端:登录(不可用)提示(右上角)
  367. ".login-panel-popover:has(.login-tip-content)",
  368. //PC端:登录(不可用)提示(播放器)
  369. ".bpx-player-toast-wrap",
  370. //PC端:登录(不可用)提示(右上角)
  371. "div:has(.unlogin-popover-avatar)",
  372. //PC端:滑动提示(正下方:首次)
  373. ".trial-feed-wrap",
  374. ],
  375. fun: function () {
  376. let add;
  377. function mutationCallback(record, observer) {
  378. //已确定登录(不可用):停止监听
  379. let login = document.querySelector(".header-entry-mini");
  380. if (login) {
  381. observer.disconnect();
  382. }
  383. //已确定未登录(不可用):执行函数
  384. let loginBtn = document.querySelector(".header-login-entry");
  385. if (loginBtn) {
  386. if (!add) {
  387. console.log("脚本注入成功");
  388. //添加事件:不拦截
  389. loginBtn.addEventListener("click", function () {
  390. LoginFlag = false;
  391. });
  392. add = true;
  393. }
  394. for (let arr of record) {
  395. for (let node of arr.addedNodes) {
  396. let button;
  397. try {
  398. button = node.querySelector(".bili-mini-close-icon");
  399. } catch (error) {
  400. /* empty */
  401. }
  402. if (button) {
  403. //有登陆弹窗时:模拟点击关闭按钮
  404. if (LoginFlag == true) {
  405. console.log(LoginFlag);
  406. console.log("自动拦截");
  407. button.click();
  408.  
  409. console.log("恢复播放");
  410. let video = document.querySelector(".bpx-player-video-wrap video");
  411. video.play();
  412. } else {
  413. console.log(LoginFlag);
  414. console.log("手动拦截");
  415. LoginFlag = true;
  416. }
  417. return;
  418. }
  419. }
  420. }
  421. }
  422. }
  423. let observer = new MutationObserver(mutationCallback);
  424. observer.observe(document, { childList: true, subtree: true });
  425. },
  426. },
  427. {
  428. name: "B站专栏",
  429. url: "bilibili.com/read/",
  430. items: [
  431. //悬浮按钮:打开app
  432. "#app>div>bili-open-app.float-btn",
  433. //PC端:登录(不可用)提示
  434. "div:has(.unlogin-popover-avatar)",
  435. ],
  436. },
  437. {
  438. name: "B站笔记",
  439. url: "bilibili.com/opus/",
  440. items: [
  441. //悬浮按钮:打开App,看更多精彩内容
  442. ".float-btn",
  443. //悬浮弹窗:打开APP
  444. ".openapp-dialog",
  445. //PC端:登录(不可用)提示
  446. "div:has(.unlogin-popover-avatar)",
  447. ],
  448. },
  449. {
  450. name: "西瓜视频",
  451. url: "ixigua.com",
  452. items: [
  453. //打开弹窗:打开
  454. ".landing_guide",
  455. //PC端:登录(不可用)提示
  456. ".loginBenefitNotification",
  457. //悬浮按钮:打开西瓜视频,看全网超清视频
  458. ".xigua-download",
  459. ],
  460. },
  461. {
  462. name: "抖音电脑版",
  463. url: "www.douyin.com",
  464. items: [
  465. //PC端:下载电脑客户端
  466. "#douyin-web-download-guide-container",
  467. //PC端:右下角登录(不可用)提示(画质)
  468. ".login-clarity-new",
  469. //PC端:登陆后查看评论
  470. "#related-video-card-login-guide",
  471. //PC端:底部登录(不可用)提示
  472. ".wwNZW6za",
  473. ],
  474. fun: function () {
  475. //登陆后查看评论模糊
  476. addStyle("._61cgy6j3{filter: none !important}");
  477. //拦截登录(不可用)弹窗
  478. onload = function () {
  479. //增加点击事件
  480. let inter = setInterval(() => {
  481. let loginBtn = getXpath('//div[text()="登录(不可用)"] | //p[text()="登录(不可用)"]', document).parentElement;
  482. if (loginBtn) {
  483. loginBtn.addEventListener("click", function () {
  484. LoginFlag = false;
  485. });
  486. clearInterval(inter);
  487. }
  488. }, 1000);
  489. };
  490.  
  491. /**
  492. * Removes a login notice.
  493. *
  494. * @param {MutationRecord[]} mutationsList The mutations list
  495. * @param {MutationObserver} observer The observer
  496. */
  497. let removeLoginNotice = function (mutationsList) {
  498. for (let mutation of mutationsList) {
  499. for (let node of mutation.addedNodes) {
  500. if (node.nodeType == Node.ELEMENT_NODE) {
  501. let closeBtn = node.querySelector(".dy-account-close");
  502. //关闭登录(不可用)弹窗
  503. if (closeBtn) {
  504. if (LoginFlag == true) {
  505. closeBtn.click();
  506. } else {
  507. LoginFlag = true;
  508. }
  509. }
  510. return;
  511. }
  512. }
  513. }
  514. };
  515. //执行监听
  516. let observer = new MutationObserver(removeLoginNotice);
  517. observer.observe(document, { childList: true, subtree: true });
  518. },
  519. },
  520. {
  521. name: "丁香园",
  522. url: "3g.dxy.cn",
  523. items: [
  524. //悬浮按钮:APP内打开
  525. "[class^=fixedBtn]",
  526. //悬浮按钮:App内打开(主页)
  527. ".wrap",
  528. ],
  529. },
  530. {
  531. name: "健康界",
  532. url: "www.cn-healthcare.com/",
  533. items: [
  534. //悬浮按钮:打开(底部滚动)
  535. "footer",
  536. ],
  537. },
  538. {
  539. name: "微博",
  540. url: "m.weibo.cn",
  541. items: [
  542. //悬浮按钮:在微博内打开(百度热议)
  543. ".app-btn-box",
  544. //悬浮按钮:登录(不可用)/注册(不可用)
  545. ".login-btn",
  546. //小程序
  547. ".wrap",
  548. ],
  549. },
  550. {
  551. name: "新浪新闻",
  552. url: "sina.cn/",
  553. items: [
  554. //悬浮按钮:打开APP
  555. ".callApp_fl_btn",
  556. ],
  557. },
  558. {
  559. name: "新浪财经",
  560. url: "sina.cn/",
  561. items: [
  562. //悬浮弹窗:立即更新(主页:首次访问)
  563. "#SFA_newVersion_pop",
  564. //悬浮按钮:打开App中查看(主页:底部)
  565. ".m-client-call2",
  566. //固定按钮:立即登录(不可用)(主页:资讯)
  567. ".login-box",
  568. //悬浮按钮:立即查看(资讯:底部,首次访问)
  569. ".wap-msg-bar-wap",
  570. //悬浮按钮:去APP听语音播报(资讯:中间)
  571. ".broadcast",
  572. //悬浮按钮:打开APP(资讯:顶部,有bug)
  573. ".m-sentiment-blk",
  574. //悬浮按钮:打开APP(资讯:底部)
  575. ".m-guss-caijing",
  576. //固定按钮:立即体验(资讯:底部)
  577. "#norm_qrcode_link_auto",
  578. //悬浮按钮:打开APP(子栏1:底部)
  579. "#subPage_bottom_callup_btn",
  580. //悬浮按钮:打开APP(子栏2:底部)
  581. "#__callup_bottom_new",
  582. //悬浮按钮:打开APP(子栏2:顶部,有bug)
  583. ".js-app-header",
  584. ],
  585. fun: function () {
  586. //修复上述规则产生的bug
  587. let inter = setInterval(() => {
  588. let item = document.querySelector(".compatibility-mode");
  589. if (item.style.marginTop == "0px") {
  590. clearInterval(inter);
  591. } else {
  592. item.style.marginTop = "0px";
  593. }
  594. }, 1000);
  595. },
  596. },
  597. {
  598. name: "东方财富网",
  599. url: "wap.eastmoney.com/",
  600. items: [
  601. //悬浮按钮:打开APP(顶部)
  602. ".fixed_top",
  603. //固定按钮:下载(主页:顶部)
  604. "#IndexDT",
  605. //悬浮按钮:打开下载(主页:顶部)
  606. ".emwapas_xldt_fixed",
  607. //悬浮按钮:打开APP(主页:底部)
  608. ".open-inapp",
  609. ],
  610. },
  611. {
  612. name: "东方财富网:股吧",
  613. url: "mguba.eastmoney.com/",
  614. items: [
  615. //悬浮弹窗:打开APP
  616. "#appbox",
  617. //悬浮按钮:东方财富APP内打开(底部)
  618. "#open_app",
  619. ],
  620. },
  621. {
  622. name: "电子发烧友",
  623. url: "m.elecfans.com",
  624. items: [
  625. //悬浮按钮:主页右侧
  626. ".hm_quick",
  627. //悬浮按钮:登陆/注册(不可用)
  628. ".login-reg-fixed",
  629. //悬浮按钮:上方打开app
  630. ".open_app",
  631. ],
  632. },
  633. {
  634. name: "人民网",
  635. url: "app.people.cn",
  636. items: [
  637. //悬浮按钮:打开(底部)
  638. ".app-bot-wrap",
  639. ],
  640. },
  641. {
  642. name: "新京报",
  643. url: "m.bjnews.com.cn/detail/",
  644. items: [
  645. //悬浮按钮:立即打开(顶部)
  646. ".xjb-top",
  647. ],
  648. },
  649. {
  650. name: "观察者网",
  651. url: "guancha.cn",
  652. items: [
  653. //固定按钮:点击下载(顶部)
  654. ".g_header44",
  655. //悬浮按钮:APP专享(底部)
  656. ".g_swiper_container",
  657. ],
  658. },
  659. {
  660. name: "澎湃新闻",
  661. url: "m.thepaper.cn/newsDetail_forward",
  662. items: [
  663. //悬浮按钮:新闻滚条(底部)
  664. "[class^=index_footer_banner]",
  665. "[.index_footer_banner__Mcr_R]",
  666. ],
  667. },
  668. {
  669. name: "凤凰新闻",
  670. url: "ifeng.com",
  671. items: [
  672. //悬浮按钮:立即打开(主页)
  673. "[class^=index_fixSlide_]",
  674. //悬浮按钮:滚动新闻(新闻底部)
  675. "[class^=index_bottom_box_]",
  676. //悬浮按钮:立即打开(财经底部)
  677. "[class^=index_bottomSlide_]",
  678. //悬浮按钮:滚动新闻(卫视底部)
  679. "[class^=index_fixBottom_]",
  680. ],
  681. },
  682. {
  683. name: "网易新闻",
  684. url: "3g.163.com",
  685. items: [
  686. //固定按钮:App内打开(底部)
  687. ".backflow-floating",
  688. ],
  689. },
  690. {
  691. name: "网易新闻",
  692. url: "m.163.com",
  693. items: [
  694. //固定按钮:App内打开(底部)
  695. ".backflow-floating",
  696. ],
  697. },
  698. {
  699. name: "搜狐",
  700. url: "m.sohu.com/a/",
  701. items: [
  702. //悬浮按钮:打开APP
  703. "#CallAppContainer",
  704. ".CallAppContainer",
  705. ],
  706. },
  707. {
  708. name: "今日头条:移动端",
  709. url: "m.toutiao.com/",
  710. items: [
  711. //悬浮按钮:App内打开(底部)
  712. ".m-bottom-container",
  713. //悬浮按钮:去首页(文章)
  714. ".m-index-tag"
  715. ],
  716. },
  717. {
  718. name: "今日头条:PC端",
  719. url: "www.toutiao.com/",
  720. items: [
  721. //悬浮弹窗:添加今日头条到电脑桌面
  722. ".add-panel",
  723. //悬浮弹窗:扫码下载今日头条
  724. "download-panel"
  725. ],
  726. },
  727. {
  728. name: "东方资讯",
  729. url: "mini.eastday.com/nsa/",
  730. items: [
  731. //PC端:悬浮弹窗:添加到桌面
  732. "#dftt-message-wrapper",
  733. ],
  734. },
  735. {
  736. name: "虎嗅",
  737. url: "m.huxiu.com",
  738. items: [
  739. //悬浮按钮:go!(主页)
  740. ".guide-wrap",
  741. //悬浮按钮:打开(顶部)
  742. ".js-top-fixed",
  743. //悬浮按钮:打开(底部)
  744. ".bottom-open-app-btn",
  745. ],
  746. },
  747. {
  748. name: "虎扑",
  749. url: "m.hupu.com",
  750. items: [
  751. //悬浮按钮:App内打开
  752. ".open-hupu",
  753. ],
  754. },
  755. {
  756. name: "豆瓣",
  757. url: "m.douban.com",
  758. items: [
  759. //固定按钮:用App打开(电影详情页)
  760. ".subject-banner",
  761. //悬浮按钮:豆瓣APP内打开
  762. ".talion-nav-footer",
  763. ],
  764. },
  765. {
  766. name: "太平洋电脑",
  767. url: "g.pconline.com.cn",
  768. items: [
  769. //悬浮按钮:打开app(底部)
  770. ".btnForAppOpenImg",
  771. //悬浮按钮:打开知科技App
  772. ".btnForAppOpenA",
  773. //固定按钮:立即打开(底部)
  774. ".WakeUptop",
  775. //悬浮按钮:打开(底部)
  776. ".page-float-box",
  777. ],
  778. },
  779. {
  780. name: "中关村在线",
  781. url: "m.zol.com.cn",
  782. items: [
  783. //悬浮按钮:打开APP
  784. ".cover-back_s",
  785. //悬浮按钮:APP内打开
  786. "#bottom-fixed-wrapper > span",
  787. ],
  788. },
  789. {
  790. name: "中关村在线2(报价+论坛)",
  791. url: "wap.zol.com.cn",
  792. items: [
  793. //悬浮按钮:打开APP
  794. ".cover-back_s",
  795. //悬浮按钮:APP内打开
  796. "#bottom-fixed-wrapper > span",
  797. ],
  798. },
  799. {
  800. name: "汽车之家PC版",
  801. url: "www.autohome.com.cn",
  802. items: [
  803. //悬浮按钮:登录(不可用)提示(PC端)
  804. "#loginGuide",
  805. ],
  806. },
  807. {
  808. name: "汽车之家移动版",
  809. url: "m.autohome.com.cn",
  810. items: [
  811. //悬浮按钮: App内打开
  812. "#float_new_button",
  813. ],
  814. },
  815. {
  816. name: "太平洋汽车",
  817. url: "m.pcauto.com.cn/",
  818. items: [
  819. //悬浮弹窗: App内打开
  820. "#home-bottom-half-dialog",
  821. //悬浮按钮: 轮播评论
  822. "#dmListOuter",
  823. ],
  824. },
  825. {
  826. //www.taptap.com
  827. name: "taptap",
  828. url: "www.taptap.cn",
  829. items: [
  830. //悬浮按钮:打开taptap
  831. ".open-app-global-float",
  832. ],
  833. },
  834. {
  835. //m.taptap.com
  836. name: "taptap",
  837. url: "m.taptap.cn",
  838. items: [
  839. //悬浮按钮:打开taptap查看更多精彩内容
  840. ".app-download__wrapper",
  841. //苹果端:悬浮按钮:添加到桌面
  842. ".show-add-to-screen",
  843. //苹果端:固定按钮:添加到桌面
  844. ".add-to-screen-wrap",
  845. ],
  846. },
  847. {
  848. //https://m.ithome.com/
  849. name: "it之家",
  850. url: "m.ithome.com",
  851. items: [
  852. //固定按钮(底部):立即打开
  853. ".open-app-banner",
  854. ],
  855. },
  856. {
  857. name: "360docPC版",
  858. url: "www.360doc.com/content/",
  859. items: [
  860. //登录(不可用)弹窗
  861. "iframe",
  862. //登录(不可用)弹窗:朦胧模板
  863. "iframe~div",
  864. ],
  865. },
  866. {
  867. name: "开源中国",
  868. url: "www.oschina.net",
  869. items: [
  870. //悬浮按钮(底部):立即打开
  871. ".app-download-banner-box",
  872. ],
  873. },
  874. {
  875. name: "segmentfault思否",
  876. url: "segmentfault.com/q",
  877. items: [
  878. //登录(不可用)弹窗
  879. ".modal-dialog-centered",
  880. ],
  881. },
  882. {
  883. name: "阿里云开发者社区",
  884. url: "developer.aliyun.com/article/",
  885. items: [
  886. //阿里云App内打开
  887. ".app-fixed-btn",
  888. ],
  889. },
  890. {
  891. name: "华为云开发者社区",
  892. url: "huaweicloud.csdn.net/",
  893. items: [
  894. //加入社区
  895. ".user-desc-fix",
  896. ],
  897. },
  898. {
  899. //https://m.36kr.com/p/1964588951470856
  900. name: "36氪",
  901. url: "m.36kr.com/p/",
  902. items: [
  903. //悬浮按钮(顶部):打开
  904. ".article-top-swiper-goapp",
  905. ],
  906. },
  907. {
  908. name: "雪球",
  909. url: "xueqiu.com/",
  910. items: [
  911. //悬浮按钮:加群学习(主页)
  912. ".FloatDownloadButton_mobile_xiaoxue-button_1jZ",
  913. //悬浮按钮:加群学习(文章)
  914. ".index_xiaoxue-button_1Av",
  915. //悬浮按钮:登录(不可用)提示
  916. ".widget__download-app"
  917. ],
  918. fun: function () {
  919. //悬浮按钮:打开app(话题)
  920. document.onreadystatechange = function () {
  921. if (document.readyState === "complete") {
  922. document.querySelector("[class^=FloatDownloadButton_mobile_openapp__fix_]").remove();
  923. }
  924. };
  925.  
  926. /**
  927. * Removes a login notice.
  928. *
  929. * @param {MutationRecord[]} mutationsList The mutations list
  930. * @param {MutationObserver} observer The observer
  931. */
  932. let removeLoginNotice = function (mutationsList) {
  933. for (let mutation of mutationsList) {
  934. for (let node of mutation.addedNodes) {
  935. let closeBtn = document.querySelector(".modal__login .close");
  936. //关闭登录(不可用)弹窗
  937. if (LoginFlag == true) {
  938. closeBtn.click();
  939. } else {
  940. LoginFlag == true;
  941. }
  942. return;
  943. }
  944. }
  945. };
  946. //拦截登录(不可用)弹窗
  947. document.addEventListener("DOMContentLoaded", function () {
  948. let loginBtn = document.querySelector(".loginBtn");
  949. //检验是否登录(不可用)
  950. if (loginBtn.textContent === "登录(不可用)") {
  951. //增加点击事件
  952. loginBtn.addEventListener("click", function () {
  953. LoginFlag = false;
  954. //未知bug:导致第一次点击无法生效,所以这里再点击一次
  955. loginBtn.click();
  956. });
  957. }
  958. //执行监听
  959. let observer = new MutationObserver(removeLoginNotice);
  960. observer.observe(document, { childList: true, subtree: true });
  961. });
  962. },
  963. },
  964. {
  965. name: "天眼查",
  966. url: "m.tianyancha.com/",
  967. items: [
  968. //悬浮按钮:打开app(主页)
  969. ".swiper-container",
  970. //悬浮按钮:下载APP(企业)
  971. "#banner_mobile_v2",
  972. ],
  973. },
  974. {
  975. name: "站酷移动版",
  976. url: "m.zcool.com.cn/",
  977. items: [
  978. //悬浮按钮:打开app(主页)
  979. ".bottom-App",
  980. //悬浮按钮:打开app
  981. "[class^=wapHeader_footer-button]",
  982. ],
  983. },
  984. {
  985. name: "站酷PC版",
  986. url: "www.zcool.com.cn/",
  987. items: [
  988. //登录(不可用)按钮
  989. ".sideUnlogin",
  990. //登录(不可用)弹窗
  991. ".ReactModal__Overlay--after-open:not(.ReactModal__Overlay_content-page)",
  992. ],
  993. fun: function () {
  994. //登录(不可用)弹窗导致的页面无法滑动
  995. addStyle("html,body {overscroll-behavior: unset !important;overflow: unset !important;}");
  996. },
  997. },
  998. {
  999. name: "小红书",
  1000. url: "www.xiaohongshu.com",
  1001. items: [
  1002. //App内打开(视频)
  1003. ".bottom-button-box",
  1004. //App内打开(笔记)
  1005. ".bottom-bar",
  1006. ],
  1007. fun: function () {
  1008. let mo = new MutationObserver(function (mutations) {
  1009. for (let mutation of mutations) {
  1010. for (let node of mutation.addedNodes) {
  1011. let button = node.querySelector(".icon-btn-wrapper");
  1012. if (button) {
  1013. if (LoginFlag) {
  1014. button.click();
  1015. } else {
  1016. LoginFlag = true;
  1017. }
  1018. return;
  1019. }
  1020. }
  1021. }
  1022. });
  1023. let loginBtn = document.querySelector(".login-btn");
  1024. if (loginBtn) {
  1025. loginBtn.addEventListener(
  1026. "click",
  1027. function () {
  1028. LoginFlag = false;
  1029. },
  1030. true,
  1031. );
  1032. mo.observe(document, { childList: true, subtree: true });
  1033. }
  1034. },
  1035. },
  1036. {
  1037. name: "喜马拉雅",
  1038. url: "m.ximalaya.com/",
  1039. items: [
  1040. //悬浮按钮:打开APP,完整收听1
  1041. ".album-btn-container",
  1042. //悬浮按钮:打开APP,完整收听2
  1043. ".btn-open",
  1044. //打开APP2
  1045. ".downloadButton",
  1046. ],
  1047. },
  1048. {
  1049. //https://wap.cnki.net/touch/web/Journal/Article/WLAQ202302061.html
  1050. name: "中国知网",
  1051. url: "wap.cnki.net/",
  1052. items: [
  1053. //App内打开
  1054. ".Appopen",
  1055. //滚动新闻
  1056. "#fix-bottom",
  1057. ],
  1058. },
  1059. {
  1060. name: "zfrontier",
  1061. url: "www.zfrontier.com",
  1062. items: [
  1063. //App内打开
  1064. ".app-opener",
  1065. ],
  1066. },
  1067. {
  1068. name: "必应搜索",
  1069. url: "bing.com",
  1070. items: [
  1071. //必应中打开(Chrome中专属)
  1072. ".bnp_rich_div_visible",
  1073. ],
  1074. },
  1075. {
  1076. name: "w3cschool",
  1077. url: "www.w3cschool.cn/",
  1078. items: [],
  1079. fun: function () {
  1080. //复制文件时的弹窗
  1081. onload = function () {
  1082. let mo = new MutationObserver(function (mutations) {
  1083. for (let mutation of mutations) {
  1084. for (let node of mutation.addedNodes) {
  1085. if (node.nodeName == "DIV" && node.className == "") {
  1086. node.style.display = "none";
  1087. }
  1088. }
  1089. }
  1090. });
  1091. mo.observe(document, { childList: true, subtree: true });
  1092. };
  1093. },
  1094. },
  1095. {
  1096. name: "什么值得买",
  1097. url: "m.smzdm.com/",
  1098. items: [
  1099. //app内打开
  1100. ".footer-banner-wrap",
  1101. //国内好价:qpp内打开
  1102. ".wrapper",
  1103. ".foot-banner",
  1104. ],
  1105. },
  1106. ];
  1107.  
  1108. /**
  1109. * 主体部分
  1110. */
  1111. for (let website of websites) {
  1112. if (location.href.indexOf(website.url) != -1) {
  1113. //隐藏/拦截骚扰元素
  1114. if (website.items) {
  1115. for (let item of website.items) {
  1116. addStyle(item + "{display: none !important}");
  1117. }
  1118. }
  1119. //修复移动版页面不允许滑动
  1120. if (website.overflow) {
  1121. addStyle("body{overflow: auto !important}");
  1122. }
  1123. //执行额外方案
  1124. if (website.fun) {
  1125. website.fun();
  1126. }
  1127. }
  1128. }
  1129.  
  1130. //默认监听
  1131. let LoginFlag = true;
  1132. //默认添加
  1133. let ClickFlag = true;
  1134.  
  1135. /**
  1136. * 通过内容(xpath)获取节点
  1137. *
  1138. * @param {string} xpath 内容
  1139. * @param {Node} parent 父元素
  1140. * @return {Node} 元素
  1141. */
  1142. function getXpath(xpath, parent) {
  1143. let xpathResult = document.evaluate(xpath, parent || document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  1144. return xpathResult.singleNodeValue;
  1145. }
  1146.  
  1147. /**
  1148. * 向head标签内添加样式
  1149. *
  1150. * @param {string} text CSS样式
  1151. */
  1152. function addStyle(text) {
  1153. let css = document.createElement("style");
  1154. css.innerText += text;
  1155. document.head.append(css);
  1156. }
  1157. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址