search-engine-filter

filter something you don't like on search engine baidu or google

  1. // ==UserScript==
  2. // @name search-engine-filter
  3. // @language javascript
  4. // @namespace https://github.com/zhangolve/search-engine-filter
  5. // @version 0.2
  6. // @description filter something you don't like on search engine baidu or google
  7. // @author zhangolve contact zhangolve@gmail.com
  8. // @license GPL version 2 or any later version; http://www.gnu.org/licenses/gpl-2.0.txt
  9. // @match https://www.baidu.com/*
  10. // @match https://www.google.co.jp/search?*
  11. // @match https://www.google.com/*
  12. // @match https://www.google.com.hk/*
  13. // @grant GM_setValue
  14. // @grant GM_getValue
  15. // @grant GM_deleteValue
  16. // @grant GM_addStyle
  17. // ==/UserScript==
  18.  
  19. //加入监听DOM树,使该脚本能够应对百度网站上的异步加载
  20. var re = 'www.jb51.net\/.*?';
  21. var googleRe=/www.google.com|www.google.co.jp|www.google.cn|www.google.com.hk/;
  22. var getRe = GM_getValue('re', re);
  23. var reg = new RegExp(getRe);
  24. var host=window.location.host;
  25. var MObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  26.  
  27. var observer = new MObserver(function(records){
  28. baiduFilter();
  29. googleFilter();
  30. addStyle();
  31. });
  32. var option = {
  33. 'childList': true,
  34.  
  35. };
  36. observer.observe(document.body, option);
  37.  
  38. //block函数用来进行屏蔽
  39. function baiduFilter() {
  40.  
  41. //当在search页面上时才进行加载脚本,防止在其他百度页面出现问题
  42. if (window.location.search !== ''&&(host=='www.baidu.com')) {
  43. var items = [];
  44. var urls = [];
  45. for (var i = 1; i < 11; i++) {
  46. items.push(document.getElementById(i));
  47. var showurl = items[i - 1].getElementsByClassName('c-showurl');
  48.  
  49. if (showurl.length !== 0) {
  50. urls.push(items[i - 1].getElementsByClassName('c-showurl')[0].innerHTML);
  51. if (reg.test(urls[i - 1])) {
  52. console.log(urls[i-1]);
  53. items[i - 1].remove();
  54. }
  55. }
  56. }
  57.  
  58. //添加一个自定义屏蔽网站添加栏,用于添加自定义的屏蔽网站
  59.  
  60. var button = document.getElementById('su');
  61. var s_tab = document.getElementById('s_tab');
  62. if(document.getElementById('inputFilter')===null)
  63. {
  64. var inputFilter = document.createElement('input');
  65. inputFilter.setAttribute('id', 'inputFilter');
  66. inputFilter.setAttribute('placeholder', '过滤域名');
  67. var filterButton = document.createElement('input');
  68. filterButton.setAttribute('type', 'submit');
  69. filterButton.setAttribute('value', '过滤');
  70. filterButton.setAttribute('id', 'filter');
  71. s_tab.appendChild(inputFilter);
  72. s_tab.appendChild(filterButton);
  73. document.getElementById('filter').addEventListener('click', filter);
  74. }
  75.  
  76. }
  77. }
  78.  
  79. function googleFilter(){
  80. if( googleRe.test(host))
  81. {
  82. console.log('1');
  83. var queryList=document.getElementsByClassName('g');
  84. var queryNum=queryList.length;
  85. for(var i=0;i<queryNum;i++)
  86. {
  87. let item=queryList[i];
  88. var node=item.getElementsByClassName('_Rm');
  89. if(node.length!==0)
  90. {
  91. var url=node[0].innerHTML;
  92. if(reg.test(url))
  93. {
  94. item.remove();
  95. }
  96. }
  97. }
  98. }
  99. }
  100.  
  101.  
  102. function filter() {
  103. var inputFilter = document.getElementById('inputFilter');
  104. if (inputFilter.value !== '') {
  105. getRe = getRe + '|' + inputFilter.value + '\/.*?';
  106. GM_setValue('re', getRe);
  107. alert('已添加过滤地址');
  108. window.location.reload(true);
  109. } else {
  110. alert('请输入需要过滤的域名');
  111. }
  112. }
  113.  
  114. function addStyle(){
  115. GM_addStyle('#inputFilter {width: 140px;height:25px;font-size:14px} #filter{width:40px;height:25px;color:red} ');
  116. }
  117.  

QingJ © 2025

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