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

猜你喜欢

转载自www.cnblogs.com/grubber/p/12560522.html
今日推荐