• 油猴脚本编写教程


    前言

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

    油猴脚本文档

    安装

    在chrome / firefox /edge 这些浏览器的扩展商店直接搜索 Tampermonkey 即可

    脚本编写方法

    功能注释

    首先来看看脚本的内容,在油猴脚本最开始有很多行注释,这些注释可以非常有用的,它表明了脚本的各个属性。下面来简单介绍一下。

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

    脚本权限

    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) 在浏览器中打开网页,可以设置是否在后台打开等几个选项
    博客中所涉及到的图片都有版权,请谨慎使用
  • 相关阅读:
    深入浅出js单例模式
    前端常见面试-存储/缓存篇
    JavaScript内存管理
    delete操作符
    解决window.location.href跳转无效问题解决办法
    前端程序员经常忽视的一个JavaScript面试题
    【华为云技术分享】漫谈LiteOS-端云互通组件-MQTT开发指南(上)
    【华为云技术分享】序列特征的处理方法之二:基于卷积神经网络方法
    【华为云技术分享】原来CTR预估模型的发展有这样的规律
    【华为云技术分享】在家办公怎么弄?华为云DevCloud宝典一看就懂——项目管理篇
  • 原文地址:https://www.cnblogs.com/shuiche/p/14360839.html
Copyright © 2020-2023  润新知