浏览器插件去除CSDN广告

本文章是2019-5-2写的,注意看下是否有不一致的地方。

前言

实在是不想迁移博客,可是广告日渐增多了(似乎今天突然增加了很多),感觉adablock也顶不住了,只能采用油猴自己用js写插件了。

@19-5-5
原来还有Adblock Plus,这个似乎目前还可以……

介绍

1)采用 油猴(tampermonkey) 插件,自己写js脚本,去掉页面中满足规则的div。
2)如果有自己的额外需要,仅需要最基本的js语法以及前端知识。可以借助浏览器的开发者工具F12,仔细分析并寻找到广告等div的位置和名字。
(有时候不提供名字就要借助父节点,子节点,兄弟节点找到,可参考 这里)

parentNode          // 父节点
childNodes          // 所有子节点
firstChild          // 第一个子节点
lastChild           // 最后一个子节点
nextSibling         // 下一个兄弟节点
previousSibling     // 上一个兄弟节点
 
parentElement           // 父节点标签元素
children                // 所有子标签
firstElementChild       // 第一个子标签元素
lastElementChild        // 最后一个子标签元素
nextElementtSibling     // 下一个兄弟标签元素
previousElementSibling  // 上一个兄弟标签元素

3) 插件的安装和使用就不说了,我使用的是这个
油猴

4) 有什么问题可以自己先进行相应的修改并评论告诉我,谢谢。

采用的去广告的代码

// ==UserScript==
// @name         CSDN 去广告
// @namespace    CSDN
// @version      0.1
// @description  去除CSDN很多广告 @2019-5-2
// @author       CHJ
// @match        https://blog.csdn.net/*
//// include       https://blog.csdn.net/hongmaodaxia
// @grant        none
// ==/UserScript==

function remove_ad(){
  // remove img
  let tag = document.getElementById("content_views")
  if(tag){
      tag = tag.previousElementSibling
      if(tag && tag.tagName=="A"){
          tag.style.display = 'none'
      }else{
          tag = tag.previousElementSibling
          if(tag && tag.tagName=="A"){
              tag.style.display = 'none'
          }
      }
  }

  // 可以放到下面
  tag = document.getElementsByClassName("indexSuperise")
  if(tag.length>0){
      //tag[0].parentNode.style.display = 'none'
      tag[0].style.display = 'none'
      //console.log("--->", document.getElementsByClassName("indexSuperise"))
  }

  var id_name = []
  var className = ["csdn-tracking-statistics mb8 box-shadow", "box-box-default"]
  var tag_name = ["iframe"]

  //alert(className.length)

  for(let i = 0;i<className.length;i++){
    var temp = document.getElementsByClassName(className[i])
    if(!temp) continue;
    for(var k =0 ;k< temp.length;k++){
            temp[k].style.display = 'none'
    }
  }

  for(let i = 0 ; i< id_name.length;i++){
    let temp = document.getElementById(id_name[i])
    if(!temp) continue;
    temp.style.display = 'none'
  }

  for(let i = 0;i< tag_name.length;i++){
    let temp = document.getElementsByTagName(tag_name[i])
    if(!temp) continue;
    for(let k = 0 ; k < temp.length;k++){
        temp[k].style.display = 'none'
    }
  }

}

(function() {
    'use strict';

    // Your code here...
    remove_ad()
    // setInterval
    var auto = setInterval(function() {
        remove_ad(1)
    }, 500);
})();

你可能感兴趣的:(软件环境配置)