GM_download(details), GM_download(url, name)
GM_getTab(callback)
GM_saveTab(tab)
GM_getTabs(callback)
GM_notification(details, ondone), GM_notification(text, title, image, onclick)
GM_setClipboard(data, info)
GM_info
USERSCRIPT HEADER@name
脚本的名字
@namespace
脚本的命名空间
@version
脚本的版本页面渲染完成后执行js , 用于检查更新 。
@author
脚本的作者
@description
简短重要的描述
@homepage, @homepageURL, @website and @source
在“选项”页上用于从脚本名链接到给定页的作者主页 。请注意,如果@namespace标记以“”开头,则其内容也将用于此操作 。
@icon, @iconURL and @defaulticon
低分率的脚本会在脚本管理列表上显示
@icon64 and @icon64URL
脚本icon 64*64 如果给了这个标签,但给了图标,则图标图像将在选项页的某些位置缩放
@updateURL
更新脚本的地址,注意:只有存在@version标签才会去更新
@downloadURL
定义检测到更新时将从中下载脚本的URL 。如果值为none , 则不会执行更新检查 。
@supportURL
定义使用者报告issues和个人支持的地址
@include
脚本应该运行的页面,可以使用正则匹配 。允许多个标签
请注意@include不支持url hash参数,可以访问这里获取更多的信息点击获取更多信息
示例
@match
和@include标签差不多的意思, 你可以点击这里获取更多信息
注意: 尚不支持“”语句,scheme部分也接受“http*://” 。
允许多个标记实例 。
@exclude
排除URL,即使它们包含在@include或@match中。允许多个标签
@require
指向一个脚本文件页面渲染完成后执行js,会在本脚本运行前加载并执行
注意:通过@require加载的脚本及其“use strict”语句可能会影响用户脚本的strict模式!
示例:
有关如何确保完整性的详细信息,请查看子资源完整性部分 。允许多个标记实例 。
@resource
预加载可以通过脚本通过gm_getresourceurl和gm_getresourcetext访问的资源
示例
有关如何确保完整性的详细信息,请查看“子资源完整性”部分 。允许多个标记实例 。
@connect
此标记定义域(没有顶级域),包括允许由GM_xmlhttpRequest 检索的子域
示例
可以是以下几个值
如果无法声明用户脚本可能连接到的所有域 , 则最好执行以下操作:
声明所有已知或至少所有可能由脚本连接的公共域 。这样,大多数用户都可以避免确认对话框 。
另外在脚本中添加“@connect*” 。通过这样做,tampermonkey仍然会询问用户是否允许下一个连接到未提及的域 , 但也会提供一个“总是允许所有域”按钮 。如果用户单击此按钮,则将自动允许所有未来的请求 。
用户还可以通过在“脚本设置”选项卡的用户域白名单中添加“*”来白名单所有请求 。
注意:
初始url和最终的url都会被检查,为了向后兼容scriptish@domain标记也会被解释 。
允许多个标记实例 。
@run-at
定义脚本被注入的时间,与其他脚本处理相反,@run-at 定义了脚本要运行的第一可能时间 。
这意味着 , 使用@require标记的脚本可能会在文档已加载后执行,因为获取所需脚本花费了很长时间 。无论如何,在给定的注入时刻之后发生的所有domnodeinserted和domcontentloaded事件都将被缓存,并在注入时传递给脚本 。
全部示例:
@grant
@grant被用于设置GM_*函数的白名单,GM_*function 是一些unsafeWindow对象和一些有影响的window函数,如果没有@grant标签,TM会猜测脚本需要什么
示例:
由于关闭和聚焦选项卡是一个强大的功能,因此还需要将其添加到@grant语句中 。
如果@grant后跟“none”,沙盒将被禁用,脚本将直接在页面上下文中运行 。在此模式下,没有gm_u*函数,但gm_u info属性将可用 。
示例
@noframes
这个标签表明脚本在主页面上运行,而不是在iframes里
@unwrap
这个标签是被忽略的,因为他在谷歌浏览器里不需要
@nocompat
目前,tm试图通过查找@match标记来检测脚本是否是在google chrome/chromium的知识中编写的 , 但并不是每个脚本都使用它 。这就是为什么tm支持这个标签来禁用运行为firefox/greasemonkey编写的脚本所需的所有优化 。要保持此标记可扩展,可以添加可由脚本处理的浏览器名称 。
示例
应用程序接口(高级API)
unsafeWindow
unsafeWindow 对象提供权限访问页面的js函数和变量
Subresource Integrity(子资源完整性)
可以使用@resource和@require标记的url的散列组件来实现此目的 。
示例:
TM本机支持MD5哈希作为回退,所有其他(SHA-1、SHA-256、SHA-384和SHA-512)都依赖于window.crypto 。如果给定了多个散列(用逗号或分号分隔) , 则TM将使用当前支持的最后一个散列 。如果外部资源的内容与所选哈希不匹配 , 则资源不会传递到用户脚本 。所有散列都需要以十六进制或base64格式编码 。
GM_addStyle(css)
给document添加样式,并且返回注入的节点
GM_deleteValue(name)
删除‘name’ 从storage里
GM_listValues()
列出storage中的所有name
GM_addValueChangeListener(name, function(name, old_value, new_value, remote) {})
在storage里添加一个改变事件的监听,并返回监听id
‘name’是被观察的变量
回调函数的‘remote’变量是显示此值是从另一个选项卡的实例修改的(true)还是在此脚本实例中修改的(false) 。
因此 , 不同浏览器选项卡的脚本可以使用此功能相互通信 。
可以使用此API实现不同浏览器Tab的相互通讯
GM_removeValueChangeListener(listener_id)
通过监听器的id移除一个监听改变的事件
GM_setValue(name, value)
设置‘name‘ 的值到storage中
GM_getValue(name, defaultValue)
从storage中获取‘name’的值
GM_log(message)
在控制台打印日志
GM_getResourceText(name)
获取在脚本顶部预定的@resource标签的内容
GM_getResourceURL(name)
获取在脚本顶部定义的@resource标签的base64 encodeURI
GM_registerMenuCommand(name, fn, accessKey)
注册一个能在页面上能够显示TM菜单命令,当这个脚本执行是,并且返回菜单命令id
意思就是可以注册一个直接显示TM的菜单的ming
GM_unregisterMenuCommand(menuCmdId)
取消注册一个菜单命令根据菜单命令ID(通过GM_registerMenuCommand 提供的)
GM_openInTab(url, options), GM_openInTab(url, loadInBackground)
使用参数url打开一个新的tab , options可以是以下值
另外,新的选项卡将被添加 。loadinbackground具有与active相反的含义,并被添加以实现Greasemonkey 3.x兼容性 。如果未指定“活动”或“加载后台” , 则选项卡将不会聚焦 。此函数返回一个具有函数close、侦听器onclosed和一个名为closed的标志的对象 。
【最新Tampermonkey中文文档解析】本文到此结束,希望对大家有所帮助!
猜你喜欢
- 基金项目:反季节‘四季蜜’龙眼高密度栽培技术
- 《局外人》:因母亲下葬没流泪而被判死刑,这个世界能有多荒诞?
- ?与孩子交流太难 可以试试哪两个沟通技巧?
- 融资融券的交易费用是怎么算的?
- 你听说过4个肾的人吗?这概率只有十万分之一
- 怎么用中国移动话费购买WP8.1商店应用?
- 贷款买房,这几点你一定要了解
- 小额贷款,不为人知的内幕
- 现在办按揭是邮政银行贷款好还是建行好?
