• 去除 华军 恶心的广告验证码


    比如这个链接: http://www.onlinedown.net/softdown/17276_2.htm

    验证码 有时候很恶心 是一些烦人的广告,你在这里 只让输入数字 就够了,非要输入 广告中的文字,过分了。

    虽然华军 这个广告验证码很新颖,有创意,但是 真的过分了。于是我搜索 ”去除 华军验证码“

    找到了:http://userscripts.org/scripts/show/129215 【onlinedown.no.ads –去除华军软件园下载页面的验证码和广告】

    进入网站 的 右上角 install ,然后点击下载 js文件,打开

    谷歌浏览器chrome 的扩展程序页面,将js拖进去,自动安装了,太好了。

    chrome会自动生成一个 扩展

    比如:

    %userprofile%\AppData\Local\Google\Chrome\User Data\Default\Extensions\kooplkpgddpimbhcbkmpknimodcdkpol\1.0_0

    自动添加一个 manifest.json文件

    内容如下:

    {
       "content_scripts": [ {
          "exclude_globs": [  ],
          "exclude_matches": [  ],
          "include_globs": [  ],
          "js": [ "script.js" ],
          "matches": [ "http://*.newhua.com/softdown/*", "http://*.onlinedown.net/softdown/*" ],
          "run_at": "document_idle"
       } ],
       "converted_from_user_script": true,
       "description": "Onlinedown.No.Ads",
       "key": "pUGrGaNVMwL4d5uceRxxspIUPaJj8lgFC8g0K0oUeh4=",
       "name": "Onlinedown.No.Ads",
       "version": "1.0"
    }

    原来在js文件头有这样的声明:

    // ==UserScript==
    // @name           Onlinedown.No.Ads
    // @namespace      Onlinedown.No.Ads
    // @description    Onlinedown.No.Ads
    // @version        2.01
    // @match          http://*.onlinedown.net/softdown/*
    // @match          http://*.newhua.com/softdown/*
    // ==/UserScript==

    所以 chrome自动从js文件 获取了扩展信息,才能安装。

    感谢 :http://opengg.me/ 鲁夫的爱,貌似他还有个 OpenGG.Clean.Player ,可以将 优酷 五六 之类的视频上的广告给去掉,其实是替换了swf文件。

    这个js文件 用浏览器运行 应该还可以 使用 javascript:alert('helloWorld');return 0;  类似的方法,将 远程js文件  给通过createElement加载一个script javascript的方式。我就不研究了

    再次 鄙视 哪些 太过分的网站 或 公司。

    js文件也不多 就3.49KB,我贴出来学习下:

    View Code
    // ==UserScript==
    // @name           Onlinedown.No.Ads
    // @namespace      Onlinedown.No.Ads
    // @description    Onlinedown.No.Ads
    // @version        2.01
    // @match          http://*.onlinedown.net/softdown/*
    // @match          http://*.newhua.com/softdown/*
    // ==/UserScript==
    (function () {
        'use strict';
        var UTILS = {
            isArrayLike: function (obj) {
                if (typeof obj !== 'object') {
                    return false;
                }
                var types = ['Array', 'NodeList', 'HTMLCollection'];
                for (var i = 0; i < types.length; ++i) {
                    if (Object.prototype.toString.call(obj).indexOf(types[i]) !== -1) {
                        return true;
                    }
                }
                return false;
            },
            forEach: function (arr, callback) {
                if ((typeof arr === 'object') && UTILS.isArrayLike(arr) && UTILS.isFunction(callback)) {
                    for (var i = 0; i < arr.length; ++i) {
                        callback.call(arr[i], arr[i]);
                    }
                    return;
                }
                if((typeof arr === 'string') && UTILS.isFunction(callback)){
                    arr = document.querySelectorAll(arr);
                    UTILS.forEach(arr,callback);
                }
            },
            remove: function (dom) {
                if (typeof dom === 'string') {
                    UTILS.remove(document.querySelectorAll(dom));
                    return;
                }
                if ((typeof dom === 'object') && UTILS.isArrayLike(dom)) {
                    UTILS.forEach(dom, function () {
                        UTILS.remove(this);
                    });
                    return;
                }
                if (dom && dom.parentNode && dom.parentNode.removeChild) {
                    dom.parentNode.removeChild(dom);
                }
            },
            die: function (dom,arr) {
                if (typeof dom === 'string') {
                    UTILS.die(document.querySelectorAll(dom),arr);
                    return;
                }
                if ((typeof dom === 'object') && UTILS.isArrayLike(dom)) {
                    UTILS.forEach(dom, function () {
                        UTILS.die(this,arr);
                    });
                    return;
                }
                var attrs = ['onclick', 'onsubmit', 'style', 'onmouseover', 'onmouseout'];
                if(arr&&UTILS.isArrayLike(arr)){
                    attrs = attrs.concat(arr);
                }
                UTILS.forEach(attrs, function (a) {
                    if (dom && dom[a]) {
                        try {
                            dom[a] = null;
                        } catch (e) {}
                    }
                    if (dom && dom.removeAttribute) {
                        dom.removeAttribute(a);
                    }
                });
            },
            addCss: function (str) {
                var style = document.createElement('style');
                style.textContent = str;
                document.head.appendChild(style);
            },
            isFunction: function (func) {
                return typeof func === 'function';
            },
            proxy: function (callback) {
                var script = document.createElement('script');
                script.textContent = 'try{(' + callback.toString() + ')();}catch(e){}';
                document.body.appendChild(script);
            },
            tips: function () {
                var html = '<div class="tips_container">Onlinedown.No.Ads \u5DF2\u542F\u7528&emsp;<a href="http://opengg.me/760/onlinedown-no-ads/" style="color:blue" target="_blank" title="\u6709\u95EE\u9898\u70B9\u6B64\u53CD\u9988">\u53CD\u9988</a>&emsp;<a href="http://opengg.me/donation/" style="color:red" title="\u6211\u8981\u6350\u52A9\u6B64\u9879\u76EE" target="_blank">\u6350\u52A9</a></div>';
                var css = '.tips_container{position:fixed;top:2em;right:2em;color:green;opacity:0.4;background:#fff;padding:10px}.tips_container:hover{opacity:0.9}.tips_container #toggleGoogle{color:red;cursor:pointer}';
                UTILS.addCss(css);
                var div = document.createElement('div');
                // div.style.position = 'relative';
                div.innerHTML = html;
                document.body.insertBefore(div, document.body.childNodes[0]);
            }
        };
        UTILS.tips();
        UTILS.addCss('.checkbackground,.down_verify{display:none !important}');
        UTILS.die('.title+.urlist a',['href']);
        UTILS.proxy(function(){
            showDownlist(2,'checkok');
        });
    })();
  • 相关阅读:
    tmux commands
    智能指针类HasPtr
    关于Vector中存放指针的问题
    面向对象的理解
    关系模型 超键 候选键 主键
    数据库的三个范式
    static struct QMetaObject const QwtPlot::staticMetaObjec
    static作用(修饰函数、局部变量、全局变量)
    C++全局变量之extern和static
    QTabWidget 使用小记
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2734538.html
Copyright © 2020-2023  润新知