因为避免不了与代码打交道,所以经常要上网搜代码,一般搜索到的资源都指向了CSDN,然而,好好的一篇博文,上面有很多广告,看着很不舒服,冲vip是不可能的,穷的的要死,怎么办呢?写个插件把!

去广告原理

当检测到匹配的网站时,我们将之前摸索发现的html中的广告位置通过JavaScript注入网页,修改他们的样式为不可见,这样广告就没了!

manifest.json

{
"author": "gshang",
"description": "为CSDN界面去除广告",
"icons":
{
"48": "48.png",
"96": "128.png"
},
"manifest_version": 2,
"name": "CSDN去广告",
"version": "1.0",
"permissions": [
"contextMenus",
"tabs"
],
"content_scripts": [ //将哪些脚本何时注入到哪些页面中
{
"matches": ["https://blog.csdn.net/*","https://www.csdn.net/","https://so.csdn.net/so/search/s.do?q=*"], //*:任意字符,注入js脚本的网页
"js": ["blog.js","home.js","search.js"] //注入网页的js脚本
}
] }

然后是针对不同网址界面的修改样式的JavaScript文件

blog.js

// https://blog.csdn.net/*
var ad1 = document.getElementsByClassName('csdn-tracking-statistics mb8 box-shadow');//左侧用户下方
for (var i=0; i<ad1.length; i++){
ad1[i].style.display = "none";
}
var ad2 = document.getElementsByClassName('recommend-item-box recommend-ad-box');//评论区
for (var i=0; i<ad2.length; i++){
ad2[i].style.display = "none";
}
var ad4 = document.getElementsByClassName('box-box-large');//个人主页右下角
for (var i=0; i<ad4.length; i++){
ad4[i].style.display = "none";
}
document.getElementById('kp_box_57').style.display = 'none';//左侧下部
document.getElementById('dmp_ad_58').style.display = 'none';//评论顶部
document.getElementById('479').style.display = 'none';//右侧
document.getElementById('480').style.display = 'none';//右侧2
document.getElementById('adContent').style.display = 'none';//免VIP去广告

home.js

// https://www.csdn.net/
var ad1 = document.getElementsByClassName('banner-ad-box');//首页banner
for (var i=0; i<ad1.length; i++){
ad1[i].style.display = "none";
}
var ad2 = document.getElementsByClassName('slide-outer right_top');//首页右侧轮播
for (var i=0; i<ad2.length; i++){
ad2[i].style.display = "none";
}
var ad3 = document.getElementsByClassName('J_adv');//信息流
for (var i=0; i<ad3.length; i++){
ad3[i].style.display = "none";
}

searh.js

// https://so.csdn.net/so/search/s.do?q=*
var ad1 = document.getElementsByClassName('rightadv');//右侧
for (var i=0; i<ad1.length; i++){
ad1[i].style.display = "none";
}
document.getElementById('kp_box_471').style.display = 'none';//信息流1
document.getElementById('kp_box_472').style.display = 'none';//信息流2

这里面的去除方法主要分两类,一类是通过查找ID,对其进行修改,即getElementById 另一类是通过查找类名,再进行修改,即getElementsByClassName。需要注意的是ID查找返回的是单个元素,类名查找返回的是数组,所以处理时需要用循环来写。可能有更好的方法,等后续学习再进一步挖掘。

结果

经过测试,首页、博客、博客正文、还有搜索 这几个界面会被去广告

CSDN去广告插件的更多相关文章

  1. 7款Chrome去广告插件

     互联网时代,大家都习惯在电脑或手机上查阅信息.观看视频.遇到不知道的东西,百度一下:想看的电视剧,爱奇艺腾讯A站B站搜一下.整个操作十分简单,大到八九十岁的老人,小到几岁孩子,都能做到.然而,很多时 ...

  2. Microsoft Edge如何安装去广告插件

    Microsoft Edge如何安装去广告插件 第一步:安装最新版本Edge https://www.microsoft.com/zh-cn/edge?form=MA13DO&OCID=MA1 ...

  3. 谷歌Google浏览器去广告插件ABP插件安装与使用

    ---恢复内容开始--- 最新版本的 Chrome 浏览器,主版本号为 67,数字签名日期为 2018.05.30.对 Chrome 的扩展(俗称插件)安装策略进行了调整——只允许在 Chrome 应 ...

  4. 路由器03---k1去广告

    HOST文件 block.hosts:https://github.com/Diumo/ADhosts 由于k1的硬件限制,8M的Flash.在没有硬改的情况下,路由无法安装太多的插件,包括众所周知的 ...

  5. 快看!❤️又一超实用浏览器插件!常用网站自动整合,JSON格式化,CSDN全站去广告!多种工具一键调用。开发者的福音!

    其实这个插件才出来的时候博主也下载了使用过,并没有什么亮点,那时候甚至觉得有点多余,因为CSDN全站去广告啥的,早就安装了油猴脚本,广告?不存在的嘿嘿.. 就在前几天看见CSDN的活动在推荐这款插件, ...

  6. JS脚本实现CSDN免登陆免关闭广告插件自动展开“阅读更多”内容

    最近在CSDN查资料,总是弹出以下弹窗,然后就自动跳转到登录页面,蛋疼! 于是重新捣腾了一下,修改了原来的脚本,最新的脚本代码如下: 温馨提示:在打开CSDN页面后立刻执行以下脚本即可免登陆免关闭广告 ...

  7. csdn自动展开+去广告+净化剪切板+免登陆(如有侵权,立即删博)

    对于csdn的广告大家想必......又没钱充VIP,怎么办,下面是脚本源码: 重要的事说三遍:如有侵权,立即删除!如有侵权,立即删除!如有侵权,立即删除! // ==UserScript== // ...

  8. openwrt下部署adbyby去广告大师 免luci 带自启动,自动开启透明代理

    最近朋友送了个360老路由器 C301,于是乎就掉进了智能路由器的坑, 玩智能路由器第一件事一定是去广告, 要么怎么对得起智能路由器- -! 路由器去广告当然首推广告屏蔽大师 www.adbyby.c ...

  9. unity5.3 安卓广告插件打包出错的理解

    今天打包带广告插件的安卓包,出现了问题 ,上网找了很多解决的办法.整理一下. 1,有的说法是unity5的BUG  因为同一个项目 用unity4.6打包就没问题 到5就出问题,当然 姑且可以这么认为 ...

随机推荐

  1. Delphi 2010 新增功能之: IOUtils 单元(6): TPath(结构体) 的方法与属性

    以后路径相关的处理, 用 IOUtils.TPath 就很方便了. //较常用的方法: TPath.GetTempPath;                  {获取临时文件夹路径} TPath.Ge ...

  2. java详细剖析

    1·类型加载主动初始化和被动初始化两种,通过访问静态变量或者给静态变量赋值都是可以使类初始化,如果有继承关系,所依赖的父类都会被动初始化. 2·如果在类的静态变量中添加final关键字,那这个变量就会 ...

  3. 一种JNI混淆方案

    转载自:http://www.liuling123.com/2016/06/so_method_mix.html 感谢原作者 侵删 默认情况下,使用JNI时与native对应的JNI函数名都是Java ...

  4. 【托业】【怪兽】TEST01

    101. respectable 值得尊敬的(形容人或事物) respectful 态度恭敬的(形容人) respecting 关于…… respective 各自的 102. hardly 几乎没有 ...

  5. Cross-Origin跨域问题

    为什么会跨域,要先了解浏览器的同源策略SOP(Same Orign Policy)  https://segmentfault.com/a/1190000015597029 同源: 如果两个页面的协议 ...

  6. vi命令插入

    1.插入 i :在当前光标前插入 I:在当前行的行首插入 a:在当前光标后插入 A:在当前行的行尾插入 o:在当前行的下面另起一行插入 O:在当前行的上面另起一行插入 s:删除当前光标的字符并开始插入 ...

  7. node中处理异步常用的方法,回调函数和events 模块处理异步

    // npm install -g supervisor supervisor http.js就可以实现热更新的效果 //引入http模块 var http = require('http'); va ...

  8. 用原生js+canvas实现五子棋

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. Oracle exp和expdp对数据进行备份

    以下给出两个示例,详细内容需要查阅手册: exp system OWNER=ZLTX FILE=ZLTX20190123.DMP expdp system DUMPFILE=ZLTX20190123. ...

  10. Spring Boot:快速入门(二)

    学习完成怎么搭建一个独立Spring Boot项目后,上面是整理出来的一些相关文件以及用途. 原本是一个Excel文件,拷贝到博客园就成了图片,当做几个笔记了,用到的时候可以查阅,也欢迎转载,收藏. ...