BlockKeywordsByCnBeta

在CB中拦截指定关键词的文章

  1. // ==UserScript==
  2. // @name BlockKeywordsByCnBeta
  3. // @namespace Violentmonkey Scripts
  4. // @match https://www.cnbeta.com/
  5. // @grant none
  6. // @description 在CB中拦截指定关键词的文章
  7. // @version 0.0.1.20190327033443
  8. // ==/UserScript==
  9.  
  10.  
  11. // 拦截包含以下关键词的文章
  12. const keywords = ["华为", "苹果", "三星", "小米", "环球时报"];
  13.  
  14. var keywordsRegs = [];
  15. keywords.forEach(k => {
  16. keywordsRegs.push(new RegExp(k));
  17. });
  18.  
  19. window.addEventListener("load", () => {
  20. var targetNode = document.querySelector(".items-area"); // 文章节点容器
  21. var config = { childList: true };
  22.  
  23. var remove = () => {
  24. let list = targetNode.querySelectorAll(".item"); // 文章节点列表
  25. list.forEach(item => {
  26. let block = false;
  27. keywordsRegs.forEach(r => {
  28. if (r.test(item.textContent)) {
  29. block = true;
  30. }
  31. });
  32. if (block) {
  33. targetNode.removeChild(item);
  34. }
  35. });
  36. observer.observe(targetNode, config);
  37. };
  38. var callback = function(mutationsList, observer) {
  39. for (var mutation of mutationsList) {
  40. if (mutation.type == "childList") {
  41. console.log("A child node has been added or removed.");
  42. observer.disconnect(); // 终止监听
  43. remove();
  44. }
  45. }
  46. };
  47. var observer = new MutationObserver(callback);
  48. remove();
  49. });