本文章是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);
})();