作为CSDN的忠实用户,我觉得它挺不错的。美中不足的是广告,虽然相比于微博啊,开源中国啊这些博客站点,它的广告已经算是很少的了。但还是会让博主有点尴尬,毕竟强迫症不是一天两天就能治好的。⊙﹏⊙b汗
于是就想着怎么能去掉这些广告,给自己一个清静的阅读环境。
第一招
最简单的方式就是使用现成的软件了。一劳永逸。
据博主了解,Chrome浏览器上有很多这样的插件,比如AdBlock, 电脑管家插件啊什么的。种类很多,找到一个适合自己的,下载安装即可使用。
鉴于博主被Chrome俘获,这里就演示一下如何安装去广告插件吧。
方式1
这第一招嘛,比较简单。但是需要有个前提,那就是本机上安装了 腾讯电脑管家这个杀毒软件。 这里对于杀毒软件什么的不过多叙述了,大家都懂的,但是为什么装这么个东西呢,无非就是懒呗,装完之后垃圾,痕迹,网络什么的也方便管理了。
关于“腾讯电脑管家是如何偷偷地安装chrome插件的?”这一个问题,知乎上有这么一个回答,我觉得还蛮不错,贴出来如下:
chrome是欢迎并允许这种插件自动安装用以扩充功能的!自然也就不给你任何提示。
所以,如果你的机器环境和博主的一致(装了电脑管家和Chrome浏览器),那么恭喜你,你将很轻松的获得一个不错的上网环境。
-
普通模式下:看起来已经很不错了,但是留下一个小框框感觉还是让人有点纠结。
-
强力过滤模式下:这下页面上终于没有广告咯。好好享受这片宁静吧。
方式2
这第二种方式就需要稍微的费点心思了,如果您的电脑管家插件没有自动安装的话,咱们就得手动的去装一个咯。
但是Chrome浏览器的“插件超市”有点让国人尴尬,墙的原因,大家都懂的了。于是我们首先得能够FQ,FQ的方法更是数不胜数了,不多叙述。博主这里采用了一个最笨的方法,那就是使用软件如*,赛风,不是本文的重点,故不再叙述了,有兴趣的小伙伴们可以自行研究一番。
下面讲解一下怎么一步步的手动安装电脑管家的Chrome插件。
然后搜索下载,添加到Chrome即可。
第二招
添加JavaScript脚本,也是一件很爽的事情哦。看看下面的这两行代码,就知道了。
查看一下网页上的源码:
起初,我以为这是个随机生成的id,但是连续查看了好多页面之后发现,这是个固定值的常数,这样真的是如虎添翼了。那还等什么,让JavaScript出场吧。
现在发现了吧,没有广告咯。
但是问题来了,咱也不能每次都得打开控制台,写两行代码吧,这就显得有点麻烦了。至于解决办法嘛,估计你也想到了,那就是在网页上注入JavaScript代码。但是对于CSDN用户而言,这个权限只有博客专家才能有。那就是通过添加栏目的方式,写上脚本代码。但是普通用户是不能在栏目里面添加JavaScript脚本代码的,因为会被自动的替换掉。
博主比较幸运,恰好有这么个权限。
如果您的情况和博主一样的话,下面的代码就能帮到你了。
<script>
// 因为从刚才的控制台,博主发现有JQuery的支持,这样写比原生的会更加的方便一些,代码如下
$(document).ready(function(){
setInterval(function(){
$("#cpro_u2392861_closebtn").trigger("click");
$("#bd-hl-content").css("display","none");
$(".J_adv").css("display","none");
$("#cpro_u2392861").css("display","none");
$("#adJs52b5334").css("display","none");
},3000);
// 添加轮询的原因是,注入的JavaScript代码在广告代码之后执行了,要想去掉广告,就必须再加载一次 去广告的脚本咯
});
</script>
不过,这并没有真正的解决全站广告,去掉的也就是本机浏览时出现的广告罢了。
第三招
不过,话又说回来了,非博客专家难道就不能用代码去广告了吗?
答案是否定的,不然写这篇文章也就没什么意义了。博主下面正式的介绍本文的重点,那就是为普通的用户写一个切实有用的去广告插件。
素材准备
- 16X16的png图片,48X48, 128X128的png图片三张
- 文本编辑器一个
- Chrome浏览器一个
- 一颗勇敢的❤
必备知识
这里说的必备知识,也就是制作一个Chrome插件所需的知识。但是不要被标题吓到了,只要我们按照套路出牌,比着葫芦画瓢还是很简单的。
- 具备一定的JavaScript语言
- 了解开发Chrome插件的“骨架”
相关文件的格式及写法
-
骨架:就是一个图片文件夹,一个js文件夹,一个manifest.json文件和一个popup.html文件。当然了,这是最基础的,我们还可以添加option.html等文件来进一步丰满插件的内容。
。
- 本例的manifest.json文件,比较基础。就不再过多介绍了。
{
"manifest_version": 2,
"name": "Ad Block",
"version": "1.0",
"description": "去除页面上的广告",
"icons":{"16":"./image/icon16.png","48":"./image/icon48.png","128":"./image/icon128.png"},
"browser_action": {
"default_icon": "./image/icon16.png",
"name": "Ad Block",
"default_title": "Ad Block",
"default_popup": "popup.html"
},
"permissions": [
"tabs",
"http://blog.csdn.net/*",
"activeTab",
"notifications","storage","http://*/"
]
}
-
需要注意的地方:
需要注意的地方就是
manifest_version
一定要为2,这是规定。所以大家遵守就可以了。
还有就是图片一定要按照要求放置和处理。
代码部分
- 待注入的JavaScript代码文件如下:
window.onload = function(){
setInterval("blockad()", 3000);
//如果嫌不放心的话,下面的注释也可以去掉
//blockad();
}
function blockad(){
document.getElementById("adJs52b5334").style.display = "none";
document.getElementById("bd-hl-content").style.display = "none";
document.getElementById("cpro_u2392861").style.display = "none";
document.getElementById("cpro_u2392861_closebtn").style.display = "none";
}
- popup.html部分
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>去除广告</title>
<style>
* {
margin:0;
padding:0;
}
body {
width: 248px;
height: 97px;
}
div {
line-height: 100px;
font-size: 42px;
text-align: center;
}
input {
border-radius: 28px;
width:82%;
font-size: 42px;
background-color: white;
box-shadow: 2px 2px 2px #e6e6e6;
font-family: "Georgia, serif";
height: 100%;
}
#blockad_input {
transition-duration: 2.8s;
}
#blockad_input:hover {
background-color: black;
color: white;
}
</style>
<script src="./js/adblock.js"></script>
</head>
<body>
<div id="ad_div">
<input id="blockad_input" type="button" name="addblockbtn" onclick="blockad()" value="Ad Block">
</div>
</body>
</html>
测试
我们只需要在刚才的拓展程序界面选中 “开发者模式”,就可以加载咱们自己的插件咯。
这里博主的情况如下:
很明显,图标部分出了点意外。博主仔细查看了一下,貌似是manifest.json文件中需要添加一个专门针对于拓展栏上的大小的图标,39X39.png,不过这不是什么重要的了。
这样,一个简易的去广告插件就完成了。
总结
回顾一下,这篇文章主要是讲解了如何去除CSDN的博客页面上的广告,代码也比较的简单。
或许您会有更大点的需求,去除所有页面的广告。按理说这也是可行的,不过是需要一些手段罢了。不过这样的话,岂不是又自己做了一个“腾讯电脑管家插件”了吗?
这样重复造*的活,博主不是很想做,除非下定决心做一个更好的*出来。
展望:
博主的展望就是通过手动的添加类似于上面的广告位的id,来扩充去广告的数据库,这样的话就必须有一台甚至多台服务器了,每次插件一旦启动,就自动的去更新广告位id,然后执行当前页面的去广告逻辑... ...
思路就是这么个思路,有兴趣的小伙伴不妨试试咯。 ~\(≧▽≦)/~啦啦啦