加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

油猴脚本编写教程详解

发布时间:2020-05-11 04:21:46 所属栏目:安全 来源:站长网
导读:副标题#e# 油猴脚本(Tampermonkey)是一个非常流行的浏览器扩展,它可以运行由广大社区编写的扩展脚本,来实现各式各样的功能,常见的去广告、修改样式文件、甚至是下载视频。今天我们就来看看如何编写自己的油猴脚本。当然为了运行油猴脚本,你应该在浏览
副标题[/!--empirenews.page--]

油猴脚本(Tampermonkey)是一个非常流行的浏览器扩展,它可以运行由广大社区编写的扩展脚本,来实现各式各样的功能,常见的去广告、修改样式文件、甚至是下载视频。今天我们就来看看如何编写自己的油猴脚本。当然为了运行油猴脚本,你应该在浏览器中安装油猴插件。

安装油猴插件

安装油猴插件非常简单,直接在浏览器的扩展商店中安装即可。国产浏览器的话一般可以通过下载扩展文件手动拖动的方式来安装。下图是微软新版Edge浏览器的扩展商店,直接搜索Tampermonkey即可。

新建脚本

首先在浏览器右上角找到并点击油猴插件,选择添加新脚本。

然后就会打开如图所示的编辑器窗口,我们就可以在其中编辑自己的脚本文件了。如果你喜欢的话,还可以将脚本内容复制到合适的编辑器中编辑,完成之后再复制回来。

如果你点击开发者菜单的话,可以选择ES6模板,然后就可以在脚本中使用新版JavaScript的特性了,它会有Babel转译回ES5。不过这个模板貌似有点问题,用了它就没办法使用代码纠错功能了。所以这里我还是选择了默认的ES5模板。

脚本编写方法

功能注释

首先来看看脚本的内容,上面是一大排注释,这些注释可以非常有用的,它表明了脚本的各个属性。下面来简单介绍一下。

属性名 作用
name   油猴脚本的名字  
namespace   命名空间,类似于Java的包名,用来区分相同名称的脚本,一般写成作者名字或者网址就可以了    
version   脚本版本,油猴脚本的更新会读取这个版本号  
description   描述,用来告诉用户这个脚本是干什么用的  
author   作者名字  
match   只有匹配的网址才会执行对应的脚本,例如 * 、 * 、 *等,参见 谷歌开发者文档  
grant   指定脚本运行所需权限,如果脚本拥有相应的权限,就可以调用油猴扩展提供的API与浏览器进行交互。如果设置为 none 的话,则不使用沙箱环境,脚本会直接运行在网页的环境中,这时候无法使用大部分油猴扩展的API。如果不指定的话,油猴会默认添加几个最常用的API  
require   如果脚本依赖其他js库的话,可以使用require指令,在运行脚本之前先加载其他库,常见用法是加载jquery  
connect   当用户使用  请求远程数据的时候,需要使用connect指定允许访问的域名,支持域名、子域名、IP地址以及 * 通配符  
updateURL   脚本更新网址,当油猴扩展检查更新的时候,会尝试从这个网址下载脚本,然后比对版本号确认是否更新  

脚本权限

下面简单介绍一下grant指令那里可以填写的一些权限,详情请查看 油猴脚本文档 。这里就简单介绍几个常用的,可以调用的函数全部以GM_作为开头。

权限名 功能
unsafeWindow   允许脚本可以完整访问原始页面,包括原始页面的脚本和变量。  
GM_getValue(name,defaultValue)   从油猴扩展的存储中访问数据。可以设置默认值,在没成功获取到数据的时候当做初始值。如果保存的是日期等类型的话,取出来的数据会变成文本,需要自己转换一下。  
GM_setValue(name,value)   将数据保存到存储中  
GM_xmlhttpRequest(details)   异步访问网页数据的API,这个方法比较复杂,有大量参数和回调,详情请参考官方文档。  
GM_setClipboard(data, info)   将数据复制到剪贴板中,第一个参数是要复制的数据,第二个参数是MIME类型,用于指定复制的数据类型。  
GM_log(message)   将日志打印到控制台中,可以使用F12开发者工具查看。  
GM_addStyle(css)   像网页中添加自己的样式表。  
GM_notification(details, ondone), GM_notification(text, title, image, onclick)   设置网页通知,请参考文档获取用法。  
GM_openInTab(url, loadInBackground)   在浏览器中打开网页,可以设置是否在后台打开等几个选项  

还有一些API没有介绍,请大家直接查看官方文档吧。

编写脚本

编写脚本就很简单了,编写到 // Your code here .. 那里即可。可以编写函数,然后在最后调用这几个函数,这样的模块化编写方法写出来的脚本比较容易维护。

等vagrant更新时候提醒我的脚本

前段时间了解了vagrant这个东西,感觉很有意思,准备研究一下,但是照着官网教程运行的时候,第一步就发生了错误。我上网一搜,原来我更新的virtualbox比较新,vagrant恰好不支持。但是如今几个月过去了,vagrant还是没有更新,所以我要写一个脚本,等到vagrant更新的时候,给我网页上弹出一个对话框。

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!