比如这个链接: 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,我贴出来学习下:
// ==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 <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> <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'); }); })();