Tampermonkey中文文档
Posted grubber
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tampermonkey中文文档相关的知识,希望对你有一定的参考价值。
用户脚本标题
@name
脚本的名称。
@namespace
脚本的命名空间。
@version
脚本版本。这用于更新检查,以防脚本未从userscript.org安装,或者 TM 检索脚本元数据时出现问题。
@author
脚本作者。
@description
一个简短的重要描述。
@homepage、@homepageURL、@website和@source
在选项页中使用的作者主页从脚本名称链接到给定页面。请注意,如果@namespace标签以"http://"开头,其内容也将用于此。
@icon、@iconURL和@defaulticon
低分辨率下的脚本图标。
@icon64和@icon64URL
此脚本图标为 64x64 像素。如果此标记,但@icon给出@icon图像将在选项页上的某些位置缩放。
@updateURL
用户脚本的更新 URL。
注意:需要@version标记才能使更新检查正常工作。
@downloadURL
定义当检测到更新时将从其中下载脚本的URL。如果使用none值,则不会执行更新检查。
@supportURL
定义用户可以报告问题和获得个人支持的 URL。
@include
该脚本应运行的页面。允许多个标记实例。
请注意,@include不支持 URL 哈希参数。请访问此论坛主题了解更多信息:点击。
代码:
// @include http://*
// @include https://*
// @include *
@match
或多或少等于@include标记。 您可以在这里得到更多信息。
注意:尚不支持‘<all_urls>‘语句,方案部分还接受‘http *://‘。
允许多个标签实例。
@exclude
排除 URL,即使它们也包含在@include或@match。
允许多个标记实例。
@require
指向在脚本本身开始运行之前加载并执行的javascript文件。注意:通过@require加载的脚本及其“use strict”语句可能会影响userscript的strict模式!
代码:
// @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...
有关如何确保完整性的详细信息,请查看子资源完整性部分。允许多个标记实例。
@resource
通过脚本预加载可以通过GM getResourceURL和GM 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 http://www.tampermonkey.net/favicon.ico#md5=123434...;sha256=234234...
有关如何确保完整性的详细信息,请查看子资源完整性部分。允许多个标记实例。
@connect
此标记定义域(无顶级域),包括允许通过GM_xmlhttpRequest检索的子域
代码:
// @connect <value>
<value>
可以具有以下值:
- 像 tampermonkey.net 这样的域(这也将允许所有子域)
- 子域即 safari.tampermonkey.net
- 将脚本当前运行的域列入白名单
localhost
访问本地主机- 1.2.3.4 连接到一个IP地址
- *
如果无法声明 userscript 可能连接到的所有域,则最好执行以下操作:
声明脚本可能连接的所有已知域或至少所有常见域。这样,大多数用户都可以避免确认对话框。此外,将“@connect”添加到脚本中。通过这样做,Tampermonkey仍然会问用户是否允许下一个连接未提及的域,但也提供了一个"始终允许所有域"按钮。
如果用户单击此按钮,则将自动允许所有将来的请求。用户还可以通过在脚本设置选项卡上将 "*" 添加到用户域白名单来将所有请求列入白名单。
注意:
- 初始URL和最终URL都将被检查!
- 对于脚本@domain标记的向后兼容性,也进行了解释。
允许多个标记实例。
@run-at
定义脚本被注入的时刻。与其他脚本处理程序相反,@run-at定义了脚本想要运行的第一个可能时刻。这意味着可能会发生这样的情况,使用@require标记的脚本可能会在文档已经加载之后执行,因为获取所需的脚本需要很长时间。无论如何,在给定的注入时刻之后发生的所有domnodeinsert和DOMContentLoaded事件都会被缓存,并在注入脚本时交付给脚本。
代码:
// @run-at document-start
脚本将尽快注入。
代码:
// @run-at document-body
如果正文元素存在,将注入脚本。
代码:
// @run-at document-end
在调度 DOM内容加载事件时或之后,将注入脚本。
代码:
// @run-at document-idle
在调度 DOM内容加载事件后,将注入脚本。如果未给出@run时标记,则这是默认值。
代码:
// @run-at context-menu
如果在浏览器上下文菜单上单击脚本(仅在基于桌面chrome的浏览器上),脚本将被注入。注意:如果使用这个值,所有的@include和@exclude语句都将被忽略,但是这在将来可能会改变。
@grant
@grant用于将GM_ *函数,unsafeWindow对象和一些强大的窗口函数列入白名单。 如果没有给出@grant标签,TM会猜测脚本的需求。
代码:
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_setClipboard
// @grant unsafeWindow
// @grant window.close
// @grant window.focus
由于关闭和聚焦选项卡是一个强大的特性,因此也需要将它添加到@grant语句中。
如果@grant后面跟着“none”,那么沙箱将被禁用,脚本将直接在页面上下文中运行。在这种模式下,没有GM *函数,但是GM信息属性是可用的。
代码:
// @grant none
@noframes
此标记使脚本在主页上运行,但不是在 iframe 上运行。
@unwrap
此标签被忽略,因为,这是不需要在谷歌Chrome/Chromium。
@nocompat
目前,TM试图通过查找@match标记来检测是否使用了谷歌Chrome/Chromium编写的脚本,但并不是每个脚本都使用它。这就是为什么TM支持这个标签来禁用所有可能需要的优化来运行为Firefox/Greasemonkey编写的脚本。要保持此标记的可扩展性,可以添加可由脚本处理的浏览器名称。
代码:
// @nocompat Chrome
以上是关于Tampermonkey中文文档的主要内容,如果未能解决你的问题,请参考以下文章