Tampermonkey 是一个常用的用户端JavaScript脚本管理器,可以在网页上运行自己的脚本,结合JavaScript脚本,可以做一些很有趣的事情。

用户脚本有很多来源,既可以用已经写好的,又可以自己亲自动手写,常见的脚本源有greasyfork,在上面可以找到很多脚本,然而,并不是所有的网站都有现成的脚本,如果掌握了一点点JavaScript的基本知识,就可以自己写一个脚本自己用了。

若干天以前,在访问某个bt下载网站时发现广告过多,又没有现成的去广告脚本,于是自己亲自安排了一个。很简单,不复杂,但有效。


// ==UserScript==
// @name         去除btbtt广告
// @namespace    http://tampermonkey.net/
// @version      0.11
// @description  try to take over the world!
// @author       dogcraft
// @match        https://btbtt.us/
// @include        *//*btbtt*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var dog1=document.getElementsByClassName("width imgs_1");
    document.body.removeChild(dog1[0]);
    //dog1[0].innerHTML='';
    var dog2=document.getElementsByClassName("width");
    dog2[1].innerHTML='';
    document.body.style.backgroundImage='';
    var yy=document.getElementById("wrapper_left_bg");
    document.body.removeChild(yy);
    var zz=document.getElementById("wrapper_right_bg");
    document.body.removeChild(zz);
    // Your code here...
})();

从脚本形式上来看脚本分为两部分,第一部分在JavaScript解释器看来是注释部分,并没有什么卵用。

// ==UserScript==
// @name         去除btbtt广告
// @namespace    http://tampermonkey.net/
// @version      0.11
// @description  try to take over the world!
// @author       dogcraft
// @match        https://btbtt.us/
// @include        *//*btbtt*/*
// @grant        none
// ==/UserScript==

这一部分主要是给脚本管理器看的,上面有着脚本的基础信息。

后一部分主要就是JavaScript了,这个是给浏览器用的

(function() {
    'use strict';
    var dog1=document.getElementsByClassName("width imgs_1");
    document.body.removeChild(dog1[0]);
    //dog1[0].innerHTML='';
    var dog2=document.getElementsByClassName("width");
    dog2[1].innerHTML='';
    document.body.style.backgroundImage='';
    var yy=document.getElementById("wrapper_left_bg");
    document.body.removeChild(yy);
    var zz=document.getElementById("wrapper_right_bg");
    document.body.removeChild(zz);
    // Your code here...
})();

具体原理很简单,就是找到广告对应的元素在html中的位置,然后用DOM方法给它移除掉就完事了。

确认能用之后,就可以发布到网上了。过程十分简单,没有什么障碍,按照提示操作就好。已经在greasyfork发布的脚本https://greasyfork.org/zh-CN/scripts/399455