TamperMonkey油猴/暴力猴浏览器脚本插件中文网(原TMchina)

标题: 油猴脚本开发中文文档合集第一节Userscript Header [打印本页]

作者: 疯子先生    时间: 2019-12-13 08:21
标题: 油猴脚本开发中文文档合集第一节Userscript Header
本帖最后由 疯子先生 于 2019-12-13 08:54 编辑
文档介绍如何使用Tampermonkey API,以及与Geasemonkey的不同之处。此部分为Userscript Header部分
@name
@namespace
@version
@author
@description
@homepage, @homepageURL, @website and @source
@icon, @iconURL and @defaulticon
@icon64 and @icon64URL
@updateURL
@downloadURL
@supportURL
@include
@match
@exclude
@require
@resource
@connect
@run-at
@grant
@noframes
@unwrap
@nocompat

USERSCRIPT HEADER




作者: 疯子先生    时间: 2019-12-13 08:21
@name
脚本的名称
作者: 疯子先生    时间: 2019-12-13 08:22
@namespace
脚本的命名空间。
作者: 疯子先生    时间: 2019-12-13 08:22
@version

脚本版本。这用于更新检查,以防脚本不是从userscript.org安装的,或者TM在检索脚本元数据时遇到问题。
作者: 疯子先生    时间: 2019-12-13 08:23
@author

脚本的作者(开发者)
作者: 疯子先生    时间: 2019-12-13 08:23
@description

简短而有意义的描述
作者: 疯子先生    时间: 2019-12-13 08:23
@homepage, @homepageURL, @website and @source

在“选项”页上用于从脚本名链接到给定页的作者主页。请注意,如果@namespace标记以“http://”开头,则其内容也将用于此操作。
作者: 疯子先生    时间: 2019-12-13 08:24
@icon, @iconURL and @defaulticon

低分辨率的脚本图标。
作者: 疯子先生    时间: 2019-12-13 08:24
@icon64 and @icon64URL

此脚本图标为64x64像素。如果这个标记,但是给了@icon@icon,则@icon图像将在选项页的某些位置缩放。
作者: 疯子先生    时间: 2019-12-13 08:25
@updateURL

用户脚本的更新URL。

注意:更新检查工作需要@version标记。
作者: 疯子先生    时间: 2019-12-13 08:25
@downloadURL

定义检测到更新时将从中下载脚本的URL。如果使用值none,则不会执行更新检查。
作者: 疯子先生    时间: 2019-12-13 08:27
@supportURL

定义用户可以在其中报告问题和获取个人支持的URL。
作者: 疯子先生    时间: 2019-12-13 08:36
@include

脚本应该运行的页面。允许多个标记实例。

请注意,@include不支持URL散列参数。

  1. // @include http://www.tampermonkey.net/*
  2. // @include http://*
  3. // @include https://*
  4. // @include *
复制代码

作者: 疯子先生    时间: 2019-12-13 08:37
@match

或多或少等于@include标记。你可以在这里得到更多的信息。

注意:尚不支持“<all-urls>”语句,scheme部分也接受“http*://”。



允许多个标记实例。
作者: 疯子先生    时间: 2019-12-13 08:37
@exclude

排除url,即使它们包含在@include或@match中。



允许多个标记实例。
作者: 疯子先生    时间: 2019-12-13 08:38
@require

指向在脚本本身开始运行之前加载并执行的JavaScript文件。

注意:通过@require加载的脚本及其“use strict”语句可能会影响userscript的strict模式!
  1. // @require https://code.jquery.com/jquery-2.1.4.min.js
  2. // @require https://code.jquery.com/jquery-2.1.3.min.js#sha256=23456...
  3. // @require https://code.jquery.com/jquery-2.1.2.min.js#md5=34567...,sha256=6789...
复制代码



作者: 疯子先生    时间: 2019-12-13 08:40
@connect

This tag defines the domains (no top-level domains) including subdomains which are allowed to be retrieved by GM_xmlhttpRequest

  1. // @connect <value>
复制代码


<value>可以有以下值:

像tampermonkey.net这样的域(这也允许所有子域)

如果无法声明用户脚本可能连接到的所有域,则最好执行以下操作:

声明所有已知或至少所有可能由脚本连接的公共域。这样,大多数用户都可以避免确认对话框。



另外在脚本中添加“@connect*”。通过这样做,Tampermonkey仍然会询问用户是否允许下一个连接到未提及的域,但也会提供一个“总是允许所有域”按钮。如果用户单击此按钮,则将自动允许所有未来的请求。



用户还可以通过在“脚本设置”选项卡的用户域白名单中添加“*”来白名单所有请求。



笔记:

同时,将检查初始和最终的URL!

为了向后兼容Scriptish@domain标记也会被解释。

允许多个标记实例。
作者: 疯子先生    时间: 2019-12-13 08:44
@run-at

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

  1. // @run-at document-start
复制代码


脚本将尽快注入。

  1. // @run-at document-body
复制代码


如果主体元素存在,脚本将被注入。

  1. // @run-at document-end
复制代码


将在发送DOMContentLoaded事件时或之后注入脚本。

  1. // @run-at document-idle
复制代码

将在调度DOMContentLoaded事件后注入脚本。如果没有给出@run at标记,这是默认值。

  1. // @run-at context-menu
复制代码


如果在浏览器上下文菜单中单击脚本(仅限基于桌面Chrome的浏览器),脚本将被注入。

注意:如果使用此值,则所有@include和@exclude语句都将被忽略,但将来可能会发生变化。


作者: 疯子先生    时间: 2019-12-13 08:44
@grant

@grant用于白名单GM_ux函数、unsafeWindow对象和一些强大的窗口函数。如果没有给@grant标记,TM会猜测脚本需要什么。

  1. // @grant GM_setValue
  2. // @grant GM_getValue
  3. // @grant GM_setClipboard
  4. // @grant unsafeWindow
  5. // @grant window.close
  6. // @grant window.focus
复制代码


由于关闭和聚焦选项卡是一个强大的功能,因此还需要将其添加到@grant语句中。



如果@grant后跟“none”,沙盒将被禁用,脚本将直接在页面上下文中运行。在此模式下,没有GM_u*函数,但GM_uinfo属性将可用。

  1. // @grant none
复制代码

作者: 疯子先生    时间: 2019-12-13 08:46
@noframes

此标记使脚本在主页面上运行,但不在iframe上运行。
作者: 疯子先生    时间: 2019-12-13 08:46
@unwrap

这个标签被忽略,因为Google Chrome/Chromium不需要它。
作者: 疯子先生    时间: 2019-12-13 08:47
@nocompat

目前,TM试图通过查找@match标记来检测脚本是否是在Google Chrome/Chrome的知识中编写的,但并不是每个脚本都使用它。这就是为什么TM支持这个标签来禁用运行为Firefox/Greasemonkey编写的脚本所需的所有优化。要保持此标记可扩展,可以添加可由脚本处理的浏览器名称。

  1. // @nocompat Chrome
复制代码

作者: 疯子先生    时间: 2019-12-13 08:52
@resource

预加载可以通过脚本通过GM_getResourceURL和GM_getResourceText访问的资源。

  1. // @resource icon1 http://www.tampermonkey.net/favicon.ico
  2. // @resource icon2 /images/icon.png
  3. // @resource html http://www.tampermonkey.net/index.html
  4. // @resource xml http://www.tampermonkey.net/crx/tampermonkey.xml
  5. // @resource SRIsecured1 http://www.tampermonkey.net/favicon.ico#md5=123434...
  6. // @resource SRIsecured2 http://www.tampermonkey.net/favicon.ico#md5=123434...;sha256=234234...
复制代码


允许多个标记实例。




欢迎光临 TamperMonkey油猴/暴力猴浏览器脚本插件中文网(原TMchina) (https://tampermonkey.cn/) Powered by Discuz! X3.3