去除CSDN 博客页广告的历程

简介: 第一招 方式1 方式2 第二招 第三招 素材准备 必备知识 代码部分 测试 总结 作为CSDN的忠实用户,我觉得它挺不错的。

作为CSDN的忠实用户,我觉得它挺不错的。美中不足的是广告,虽然相比于微博啊,开源中国啊这些博客站点,它的广告已经算是很少的了。但还是会让博主有点尴尬,毕竟强迫症不是一天两天就能治好的。⊙﹏⊙b汗
CSDN站内广告

于是就想着怎么能去掉这些广告,给自己一个清静的阅读环境。


第一招

最简单的方式就是使用现成的软件了。一劳永逸。

据博主了解,Chrome浏览器上有很多这样的插件,比如AdBlock, 电脑管家插件啊什么的。种类很多,找到一个适合自己的,下载安装即可使用。

鉴于博主被Chrome俘获,这里就演示一下如何安装去广告插件吧。

方式1

这第一招嘛,比较简单。但是需要有个前提,那就是本机上安装了 腾讯电脑管家这个杀毒软件。 这里对于杀毒软件什么的不过多叙述了,大家都懂的,但是为什么装这么个东西呢,无非就是懒呗,装完之后垃圾,痕迹,网络什么的也方便管理了。

关于“腾讯电脑管家是如何偷偷地安装chrome插件的?”这一个问题,知乎上有这么一个回答,我觉得还蛮不错,贴出来如下:

chrome是欢迎并允许这种插件自动安装用以扩充功能的!自然也就不给你任何提示。

所以,如果你的机器环境和博主的一致(装了电脑管家和Chrome浏览器),那么恭喜你,你将很轻松的获得一个不错的上网环境。

  • 普通模式下:看起来已经很不错了,但是留下一个小框框感觉还是让人有点纠结。

    普通过滤模式

  • 强力过滤模式下:这下页面上终于没有广告咯。好好享受这片宁静吧。

    强力过滤模式

方式2

这第二种方式就需要稍微的费点心思了,如果您的电脑管家插件没有自动安装的话,咱们就得手动的去装一个咯。

但是Chrome浏览器的“插件超市”有点让国人尴尬,墙的原因,大家都懂的了。博主这里采用了一个最笨的方法,那就是使用软件如Lantern,赛风,不是本文的重点,故不再叙述了,有兴趣的小伙伴们可以自行研究一番。

下面讲解一下怎么一步步的手动安装电脑管家的Chrome插件。

操作步骤

然后搜索下载,添加到Chrome即可。

第二招

添加JavaScript脚本,也是一件很爽的事情哦。看看下面的这两行代码,就知道了。

查看一下网页上的源码:

网页源代码

起初,我以为这是个随机生成的id,但是连续查看了好多页面之后发现,这是个固定值的常数,这样真的是如虎添翼了。那还等什么,让JavaScript出场吧。

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,然后执行当前页面的去广告逻辑... ...

思路就是这么个思路,有兴趣的小伙伴不妨试试咯。 ~\(≧▽≦)/~啦啦啦
目录
相关文章
|
2月前
聚合博客网址导航大全代码分享
博友大全 - 博客大全|独立博客大全|博客导航|优秀博客大全http://m.bokequ.com/list/22-1.html
20 6
|
11月前
|
应用服务中间件 nginx
如何只搜索自己博客站的文章
如何只搜索自己博客站的文章
30 0
Hexo博客展示文章字数及阅读时间
Hexo博客展示文章字数及阅读时间
570 0
|
数据采集 消息中间件 网络协议
12行代码获取CSDN博客标题、发布时间、阅读量
本文目录 1. 场景 2. 效果 3. 速度 4. 代码
192 0
|
存储 XML JSON
获取知乎回答内容及答主信息
围观几个知乎话题
1384 0
为什么明明是发自己的博客,阿里却删除我发部的开源作品?
为什么明明是发自己的博客,阿里却删除我发部的开源作品?
1031 0