它是一款插件,用来在浏览器里运行自定义的js脚本,以弥补某些网站的不够人性化问题。前端
最初油猴子诞生于firefox平台,以上面优势得到前端开发者的青睐。最初的油猴子叫Greasemonkey
,后来出现了新的插件Tampermonkey
,它兼容了油猴子的功能,并且支持跨浏览器运行。因此如今你们都广泛称Tampermonkey
为油猴子。vue
说到浏览器,你们用的可能都不太同样,有用firefox,chrome的,也有用微软edge,苹果safari的,还有用chromium内核的360和qq浏览器,以及一些老旧的浏览器。jquery
Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox。ajax
360/qq浏览器应该去他们的应用商店查询
safari下的插件是付费的 (10.15之后变为付费,safari的win版并不支持插件功能)
网址: https://www.tampermonkey.net/
下载适合本身浏览器的插件正则表达式
有了插件并不能实现什么功能,他只是一个平台,具体功能须要你去如下网站下载。
GreasyFork 和 OpenUserJSchrome
这里已经有不少的功能脚本,已经能基本知足需求,搜索到满意的脚本点击安装便可。Tampermonkey支持脚本备份导出功能,方便你在不一样平台共享脚本。浏览器
若是还知足不了需求,那就继续看下面的文章。网站
首先,要写一个脚本须要你知足一下技术需求:ui
其中,jquery并非必需要掌握,可是懂了它以后你的效率会事半功倍,不过这个模块有些网站会失效,这时候就须要用到基本js控制网页元素了。
点击插件按钮,新建脚本:google
它包含了脚本的描述和结构,做为本身努力的结晶,你须要附上你的我的网站,以及本身的名字。同时对于脚本最重要的是脚本名称,脚本版本号,对脚本的描述,以及匹配网站。
这些内容随时均可以更改,包括脚本名称。
而最下面是脚本的内容,脚本默认启动严格模式,严格的好处是提醒代码出错。
代码放置的位置就在Your code here
中
若是是想全网站匹配,可使用
// @include *
若是包含具体网址能够用
// @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})
把提取码复制出来attr('href')
拼接便可
$.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()
须要准备以下内容,方便了解脚本的做用,便于下载
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); } }
成品网址 撒花, 欢迎交流和支持