Tampermonkey油猴用户脚本API文档

在这里插入图片描述


在这里插入图片描述


个人名片:

🐼作者简介:一名大三在校生,喜欢AI编程🎋
🐻‍❄️个人主页🥇:落798.
🐼个人WeChat:hmmwx53
🕊️系列专栏:🖼️




前言:

相信大家都了解浏览器插件,而在众多的扩展中,就不得不提到一个浏览器插件——Tampermonkey。中文俗称油猴。

相信很多人也听说过,大家可以把他理解为一个用户脚本管理器。它本身是无法为我们发挥什么作用的,它主要依靠各大社区编写的扩展脚本(JavaScript代码)运行在浏览器上,来改变被访问网页的功能,提升我们的网页浏览体验 。

什么是「油猴」?

「油猴」,Greasemonkey,简称 GM,可以简单理解为脚本管理器。

通过给油猴管理器安装各类脚本,可以让大部分 HTML 为主的网页更方便易用,比如:全速下载网盘文件、去广告、悬停显示大图、Flash/HTML5 播放器转换、阅读模式等。有点像给 Chrome 的插件装上插件。

在这里插入图片描述
知名的油猴管理器有很多,Tampermonkey、Greasemonkey、Violentmonkey 做的都不错,我们在这介绍对各大浏览器平台适配的最好的 Tampermonkey 管理器。

Tampermonkey油猴用户脚本API文档

官网地址:https://www.tampermonkey.net/documentation.php?ext=dhdg#api:GM_openInTab
在这里插入图片描述

相信熟悉浏览器的都知道,尤其是大名鼎鼎的Chrome浏览器,丰富的扩展程序让很多人体验到了浏览器的神奇之处,而一个没有安装扩展程序的浏览器也是不完整的。

用户脚本 Header

@name

脚本的名称。

国际化是通过添加命名区域设置的附录来完成的。

// @name    A test
// @name:de Ein Test
@namespace

脚本的命名空间。

@copyright

在脚本编辑器标题中显示的版权声明,位于脚本名称的正下方。

@version

脚本版本。这用于更新检查,每次更新时都需要增加。

@description

一个简短的重要描述。

国际化是通过添加命名区域设置的附录来完成的。

// @description This userscript does wonderful things
// @description:de Dieses Userscript tut wundervolle Dinge
@icon、@iconURL@defaulticon
低分辨率的脚本图标。

@icon64,@icon64URL

此脚本图标为 64x64 像素。如果此标记,但给定图像将在选项页面的某些位置缩放。@icon@icon

@grant

@grant用于将功能列入白名单,对象和一些功能强大的功能。GM_*GM.*unsafeWindowwindow

// @grant GM_setValue
// @grant GM_getValue
// @grant GM.setValue
// @grant GM.getValue
// @grant GM_setClipboard
// @grant unsafeWindow
// @grant window.close
// @grant window.focus
// @grant window.onurlchange

由于关闭和聚焦选项卡是一项强大的功能,因此也需要将其添加到语句中。 如果紧随其后,沙盒将被禁用。在此模式下,没有任何功能,但该属性将可用。@grant@grantnoneGM_*GM_info

// @grant none
如果未提供任何标记,则假定为空列表。但是,这与使用 .@grantnone

@author

脚本作者。

@homepage、@homepageURL、@website@source
在选项页面上用于从脚本名称链接到给定页面的作者主页。请注意,如果标签以其内容开头,也将用于此目的。@namespacehttp://

@antifeature
此标记允许脚本开发人员披露他们是否通过脚本获利。例如,GreasyFork 需要它。

语法:<tag> <type> <description>

<type> 可以具有以下值:

广告
跟踪
矿工

// @antifeature       ads         We show you ads
// @antifeature:fr    ads         Nous vous montrons des publicités
// @antifeature       tracking    We have some sort of analytics included
// @antifeature       miner       We use your computer's resources to mine a crypto currency

国际化是通过添加命名区域设置的附录来完成的。

@require

指向在脚本本身开始运行之前加载并执行的 JavaScript 文件。 注意:加载方式的脚本及其“use strict”语句可能会影响用户脚本的严格模式!@require

// @require https://code.jquery.com/jquery-2.1.4.min.js
// @require https://code.jquery.com/jquery-2.1.3.min.js#sha256=23456...
// @require https://code.jquery.com/jquery-2.1.2.min.js#md5=34567...,sha256=6789...
// @require tampermonkey://vendor/jquery.js
// @require tampermonkey://vendor/jszip/jszip.js

请查看子资源完整性部分,了解如何确保完整性的更多信息。

允许使用多个标签实例。

@resource

预加载可通过脚本和脚本访问的资源。GM_getResourceURLGM_getResourceText

// @resource icon1       http://www.tampermonkey.net/favicon.ico
// @resource icon2       /images/icon.png
// @resource html        http://www.tampermonkey.net/index.html
// @resource xml         http://www.tampermonkey.net/crx/tampermonkey.xml
// @resource SRIsecured1 http://www.tampermonkey.net/favicon.ico#md5=123434...
// @resource SRIsecured2 

允许使用多个标签实例。

@include

脚本应运行的页面。允许使用多个标签实例。 @include不支持 URL 哈希参数。您必须匹配没有哈希参数的路径,并使用 window.onurlchange

// @include http://www.tampermonkey.net/*
// @include http://*
// @include https://*
// @include /^https:\/\/www\.tampermonkey\.net\/.*$/
// @include *

注意:在编写类似的东西时,许多脚本开发人员希望脚本只运行,但事实并非如此。 它也运行在。

因此,Tampermonkey 的解释包含有点像 .Every before 仅匹配除字符之外的所有内容,以确保仅匹配 URL 方案。 此外,如果这样的 包含 after ,则这些字符串之间的所有内容都被视为主机,匹配除字符之外的所有内容。这同样适用于直接跟随 .@includes://@match*😕/:@include/😕//*😕/

@match

在 Tampermonkey 中,该指令用于指定脚本应在其上运行的网页。 的值应为与希望运行脚本的页面匹配的 URL 模式。以下是您需要设置的 URL 模式的各个部分:@match@match

// @match <protocol>://<domain><path>
protocol - 这是 URL 的第一部分,在冒号之前。它指定页面使用的协议,例如 或 。 两者都匹配。httphttps*

domain - 这是 URL 的第二部分,在协议和两个斜杠之后。它指定网站的域名,例如 .您可以通过这种方式使用通配符来匹配它的任何子域,例如 .tmnk.com*.tmnk.nettmnk.netwww.tmnk.net
path - 这是域名后面的 URL 部分,可能包含其他子目录或文件名。您可以使用通配符来匹配路径的任何部分。*

@run-at

定义注入脚本的时刻。与其他脚本处理程序相反,定义脚本想要运行的第一个可能时刻。这意味着可能会发生这样的情况,即使用该标记的脚本可能会在加载文档后执行,因为获取所需的脚本需要很长时间。无论如何,在给定注入时刻之后发生的所有 DOMNodeInserted 和 DOMContentLoaded 事件都会被缓存并在注入脚本时传递到脚本。@run-at@require

@updateURL

用户脚本的更新 URL。 注意:需要标记才能使更新检查正常工作。@version

@downloadURL

定义检测到更新时将从中下载脚本的 URL。如果使用值 none,则不会执行更新检查。

@supportURL

定义用户可在其中报告问题并获得个人支持的 URL。

@webRequest

@webRequest获取匹配的 JSON 文档GM_webRequest的参数。它甚至允许在加载用户脚本之前应用规则。rule

@unwrap

将没有任何包装器和沙箱的用户脚本注入到页面中,这可能对 Scriptlet 有用。

应用程序编程接口

不安全的窗口

该对象提供对运行 Tampermonkey 的页面对象的访问,而不是对 Tampermonkey 扩展的对象的访问。这在某些情况下很有用,例如当用户脚本需要访问页面上定义的 JavaScript 库或变量时。unsafeWindowwindowwindow

子资源完整性

子资源完整性 (SRI) 是一项安全功能,允许用户脚本开发人员确保其用户脚本中包含的外部资源(例如 JavaScript 库和 CSS 文件)未被篡改或修改。这是通过生成资源的加密哈希并将其包含在 和 标记中来实现的。安装用户脚本后,Tampermonkey 将计算资源的哈希值并将其与包含的哈希值进行比较。如果两个哈希值不匹配,Tampermonkey 将拒绝加载资源,防止攻击者将恶意代码注入您的用户脚本。@require@resource

有关合适的“属性”,请参阅相应的文档。例如:

脚本标记
img 标签
样式标签

GM_addElement('script', {
  textContent: 'window.foo = "bar";'
});

GM_addElement('script', {
  src: 'https://example.com/script.js',
  type: 'text/javascript'
});

GM_addElement(document.getElementsByTagName('div')[0], 'img', {
  src: 'https://example.com/image.png'
});

GM_addElement(shadowDOM, 'style', {
  textContent: 'div { color: black; };'
});

注意:此功能是实验性的,API 可能会发生变化。

GM_addStyle(css)

将给定样式添加到文档中,并返回注入的样式元素。

GM_download(详细信息)、GM_download(url、名称)
GM_download允许用户脚本从指定的 URL 下载文件并将其保存到用户的本地计算机。

该函数采用以下参数:GM_download

详细信息可以具有以下属性:

url:要下载的文件的 URL。这必须是有效的 URL,并且必须指向用户可访问的文件。
名称: 用于下载文件的名称。 这应包括文件扩展名,例如 .txt 或 .pdf。 出于安全原因,文件扩展名需要在 Tampermonkey 的选项页面上列入白名单
标头: 包含要包含在下载请求中的 HTTP 标头的对象。 看GM_xmlhttpRequest了解更多详情。
saveAs: 一个布尔值,指示是使用用户的默认下载位置,还是提示用户选择其他位置。 此选项仅适用于浏览器 API 模式。
冲突操作: 一个字符串,用于控制当具有此名称的文件已存在时发生的情况。此选项仅适用于浏览器 API 模式。 可能的值为 和 。 请查看此链接了解更多详情。uniquifyoverwriteprompt
onload:下载成功完成时调用的函数。
onerror:下载失败或取消时调用的函数。
进行中如果此下载取得了一些进展,则要执行的回调。
ontimeout如果此下载因超时而失败,则要执行的回调。
onerror 回调的 download 参数可以具有以下属性:

error:错误原因
not_enabled - 用户未启用下载功能
not_whitelisted - 请求的文件扩展名未列入白名单
not_permitted - 用户启用了下载功能,但未授予下载权限
not_supported - 浏览器/版本不支持下载功能
not_succeeded - 下载未启动或失败,details 属性可能会提供更多信息
详细信息:有关该错误的详细信息
返回具有以下属性的对象:

abort:可以调用以取消此下载的函数。
如果使用,它将返回一个 promise,该 promise 解析为下载详细信息,并且还具有一个函数。GM.downloadabort


在这里插入图片描述

欢迎添加微信,加入我的核心小队,请备注来意

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落鱼科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值