清理百度贴吧插入广告

清理掉贴吧列表和贴子中插入的广告(轻量级)

Version vom 12.08.2016. Aktuellste Version

  1. // ==UserScript==
  2. // @name 清理百度贴吧插入广告
  3. // @icon http://www.studstu.com/fximg/delicious.gif
  4. // @namespace moekai.moe.cleartiebaad
  5. // @version 0.8.1
  6. // @description 清理掉贴吧列表和贴子中插入的广告(轻量级)
  7. // @author YIU
  8. // @include *://tieba.baidu.com/*
  9. // @grant none
  10. // @compatible chrome OK
  11. // @compatible firefox OK
  12. // ==/UserScript==
  13.  
  14. (function() {
  15.  
  16. //======== 你可以修改这下面的数据 ========
  17.  
  18. //清理 1楼 下的 相关推荐(0不清理 1清理)
  19. var delrec = 0;
  20.  
  21. //滚动条清理频率(如果想更快的清理,可以把数值改小,但不要小于1)
  22. var scrollrate = 10;
  23.  
  24.  
  25.  
  26. //======== 函数区,不要修改 =======
  27.  
  28. //--- 删除列表AD
  29. function DelTeibaListAD(){
  30. //列表区域检查
  31. var oa = document.getElementById('thread_list');
  32. if(!oa) return;
  33.  
  34. var os = oa.children;
  35. var oss = os.length;
  36.  
  37. for(var o=0; o<oss; o++)
  38. {
  39. var oi = os[o];
  40. if(oi){
  41. if(!oi.classList.contains('thread_top_list_folder') && !oi.attributes['data-field'])
  42. {
  43. oi.parentNode.removeChild(oi);
  44. }
  45. }
  46. }
  47.  
  48. }
  49.  
  50. //--- 删除贴子AD
  51. function DelTeibaPostAD(){
  52. //帖子区域检查
  53. var oa = document.getElementById('j_p_postlist');
  54. if(!oa) return;
  55.  
  56. //对于翻页嵌套的节点选择最后一个合适的节点
  57. var ob = oa.childNodes;
  58. var os = ob[ob.length-1].className == 'p_postlist' ? ob[ob.length-1].children : oa.children;
  59. var oss = os.length;
  60.  
  61. for(var o=0; o<oss; o++)
  62. {
  63. var oi = os[o];
  64. if(oi){
  65. if(!oi.attributes['data-field'] || oi.attributes['data-isautoreply'] || oi.attributes['data-field'].value.indexOf("user_id") < 1)
  66. {
  67. oi.parentNode.removeChild(oi);
  68. }
  69. }
  70. }
  71.  
  72. }
  73.  
  74. //--- 删除相关推荐
  75. function DelRecommend(){
  76. if(delrec < 1) return;
  77. var oa = document.getElementsByClassName('thread_recommend');
  78. if(oa.length < 1) return;
  79. oa[0].parentNode.removeChild(oa[0]);
  80. }
  81.  
  82.  
  83.  
  84. //======== 主处理区,不要修改 ========
  85.  
  86. //--- 清理第一次加载完成的页面
  87. window.onload = function(){
  88. DelTeibaListAD();
  89. DelTeibaPostAD();
  90. DelRecommend();
  91. };
  92.  
  93. //--- 用滚动条进行清理
  94. window.onscroll = function(){
  95. //获取滚动条高度
  96. var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
  97.  
  98. //滚动条清理频率范围
  99. if(Number.isInteger(scrollTop/(scrollrate < 1 ? 1 : scrollrate))){
  100. DelTeibaListAD();
  101. DelTeibaPostAD();
  102. DelRecommend();
  103. }
  104. };
  105.  
  106. })();