共计 3223 个字符,预计需要花费 9 分钟才能阅读完成。
什么是油猴子?
它是一款插件,用来在浏览器里运行自定义的 js 脚本,以补救某些网站的不够人性化问题。
最后油猴子诞生于 firefox 平台,以下面长处取得前端开发者的青眼。最后的油猴子叫 Greasemonkey
,起初呈现了新的插件Tampermonkey
,它兼容了油猴子的性能,而且反对跨浏览器运行。所以当初大家都广泛称Tampermonkey
为油猴子。
说到浏览器,大家用的可能都不太一样,有用 firefox,chrome 的,也有用微软 edge,苹果 safari 的,还有用 chromium 内核的 360 和 qq 浏览器,以及一些老旧的浏览器。
Tampermonkey 是一款收费的浏览器扩大和最为风行的用户脚本管理器,它实用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。
360/qq 浏览器应该去他们的利用商店查问
safari 下的插件是付费的(10.15 当前变为付费,safari 的 win 版并不反对插件性能)
如何装置 Tampermonkey?
网址:https://www.tampermonkey.net/
下载适宜本人浏览器的插件
插件能干什么?
有了插件并不能实现什么性能,他只是一个平台,具体性能须要你去以下网站下载。
GreasyFork 和 OpenUserJS
这里曾经有很多的性能脚本,曾经能根本满足需要,搜寻到称心的脚本点击装置即可。Tampermonkey 反对脚本备份导出性能,不便你在不同平台共享脚本。
如果还满足不了需要,那就持续看上面的文章。
如何写一个脚本?
首先,要写一个脚本须要你满足一下技术需要:
- 把握 js 脚本
- 把握 jquery 模块 (可选)
- 正则表达式 (可选)
- 用控制台调试
- 公布脚本 (可选)
其中,jquery 并不是必须要把握,然而懂了它之后你的效率会事倍功半,不过这个模块有些网站会生效,这时候就须要用到根本 js 管制网页元素了。
创立一个脚本
点击插件按钮,新建脚本:
它蕴含了脚本的形容和构造,作为本人致力的结晶,你须要附上你的集体网站,以及本人的名字。同时对于脚本最重要的是脚本名称,脚本版本号,对脚本的形容,以及匹配网站。
这些内容随时都能够更改,包含脚本名称。
而最上面是脚本的内容,脚本默认启动严格模式,严格的益处是揭示代码出错。
代码搁置的地位就在 Your code here
中
匹配网站
如果是想全网站匹配,能够应用
// @include *
如果蕴含具体网址能够用
- 只匹配 b 站首页
// @match https://www.bilibili.com/
- 匹配全网
// @match http*://*/*
or
// @include *
- 排除匹配
// @exclude https://mail.google.com/*
扩大反对
因为提到用到 jquery,所以我这里退出了它
// @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
其余扩大依据你的需要来,你能够退出 vue 扩大,但尽量从简,很多插件甚至为了适应更多网站,甚至摈弃了 jquery
写怎么的一个脚本
为某个需要而生。
这里我有个想法,百度网盘在网上宽泛散布,但每次点击都要复制明码,非常麻烦,能不能通过脚本实现大部分性能?
网上有专用脚本来实现网盘的明码复制和主动填充,我这里看看本人是否实现。
试试吧~~
写代码
当初能够正式开始写代码了,但别急,代码在这里写,既艰涩又不直观,关上控制台吧,当然关上控制台之前,先要关上对应的网站,否则关上的控制台也无奈无效起作用。
- 首先咱们要晓得网站的网址:
window.location.href
很不便就失去了,你能够在控制台试试看 -
其次,如何取得网址的二级域名呢?答案是正则:
\/\/(.+?\..*?)(\/|\?)
- 我来简略论述一下正则的作用,它会查问网址以
//
结尾并以/
或?
完结的字符串,某些字符是命令字符,所以要表白它的本意须要在后面加上\
形成\?
来表白本来的意思。
- 我来简略论述一下正则的作用,它会查问网址以
- 正则有了,那么执行正则失去域名
- 判断域名如果不是百度网盘,那就搜索网盘和提取码,并把明码通过
#
整合到网盘链接上 -
非百度网盘网址解决:
- 全局搜寻
提取码
关键字 - 而后通过正则
(码 | 问)[\s|:|:]*([a-zA-Z0-9]{4})
把提取码复制进去 - 通过对提取码左近的链接,找到跳转链链接:`find(‘a[href*=”pan.baidu.com”]’)
- 提取它的链接:
attr('href')
-
拼接即可
- 非凡:某些网站并不会间接贴出百度网站的网址,而是减少了个统计跳转链接,这时候须要 ajax 解析开展
- 判断非百度网址 if(link.indexOf(‘https://pan.baidu.com’)!=0)
- 执行解析
$.ajax({type:'get',url:link, success:function(res){
- 通过正则提取解析的百度网盘网址:
(https:\/\/pan.baidu.com\/.*?\/(\d|\w|-)+)
- 拼接网盘网址和提取码
- 全局搜寻
-
百度网盘网址解决:
- 正则解析网址上的提取码:
#([a-zA-Z0-9]{4})
- 填入到惟一输入框中:
$('input').first().val(提取码)
- 主动关上,咱比拟懒
$('a[title=" 提取文件 "]').click()
- 正则解析网址上的提取码:
- 脚本写完,多个网站验证,还蛮不错的
提交脚本到网站
- 注册一个 greasyfork.org 的账号
-
须要筹备如下内容,不便理解脚本的作用,便于下载
- 脚本代码自身
- 对脚本的形容
- 脚本的运行截图
- 提交你的脚本
- 当前脚本更新须要再回来更新脚本,记住版本号是须要迭代的
成品
成品网址
var label = 'Zszen'
var regexp_codeback = /#([a-zA-Z0-9]{4})/
var regexp_code = /(码 | 问)[\s|:|:]*([a-zA-Z0-9]{4})/
var regexp_url = /(https:\/\/pan.baidu.com\/.*?\/(\d|\w|-)+)/
var url = window.location.href;
var res = /\/\/(.+?\..*?)(\/|\?)/.exec(url);
var site = res[1];
console.log(site);
//parse
if(site=="pan.baidu.com"){$('input').first().val(regexp_codeback.exec(url)[1]);
$('a[title=" 提取文件 "]').click();}else{//deal
var area = $(':contains(" 提取码 ")').last();
if(area.length>0) replaceUrl(area);
area = $(':contains(" 明码:")').last();
if(area.length>0) replaceUrl(area);
}
function replaceUrl(area){var code = regexp_code.exec(area.text())[2];
var atag = area.find('a[href*="pan.baidu.com"]');
if(atag.length==0){atag = area.find('a');
}
var link = atag.attr('href');
console.log(link);
if(link.indexOf('https://pan.baidu.com')!=0){$.ajax({type:'get',url:link, success:function(res){link = regexp_url.exec(res)[0];
area.find('a').attr('href', link + "#" + code);
}});
}else{area.find('a').attr('href', link + "#" + code);
}
}
成品网址 撒花, 欢送交换和反对