Tampermonkey的安装与使用

简介: Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey 将在您的用户脚本管理方面提供更多的便利。 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能, 同时Tampermonkey还有可能正常运行原本并不兼容的脚本。

Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,虽然有些受支持的浏览器拥有原生的用户脚本支持,但 Tampermonkey 将在您的用户脚本管理方面提供更多的便利。 它提供了诸如便捷脚本安装、自动更新检查、标签中的脚本运行状况速览、内置的编辑器等众多功能, 同时Tampermonkey还有可能正常运行原本并不兼容的脚本。


Tampermonkey的安装


方式一 Chrome商店直接下载


Chrome商店 -> 搜索 Tampermonkey -> Tampermonkey 安装即可


640 (1).jpg


一般情况下是无法下载的,除非你能。。。


方式二:第三方网站进行插件文件下载


进入https://www.crx4chrome.com/crx/755/进行安装文件的下载,下载完成后。打开拓展程序(Chrome用户选项框 -> 更多工具 -> 拓展程序)


640 (2).jpg


进入如下图所示的界面


640 (3).jpg


打开右上角的 开发者模式,将已经下载的文件拖拽至上图所示的界面。即可完成安装。


使用第三方脚本


进入greasyfork https://greasyfork.org/zh-CN/scripts 获取需要的插件脚本即可


自定义开发脚本


鼠标点击Tampermonkey图标呼出其选项卡,点击添加脚本。即可进入新建脚本界面。


640 (4).jpg


语法规则


// ==UserScript==
// @key value
// ==/UserScript==


字段释意:


基本信息


@name:脚本的名字(自定义)


@author 作者。该脚本的作者。可使用默认的you,或者你的名字


@description 脚本描述(类似于编程中的注释,阐述该脚本的作用等)


命名空间


@namespace 脚本的命名空间(通常使用默认http://tampermonkey.net/,也可指定)


@homepage, @homepageURL, @website and @source 在选项页面使用的作者主页,用于从脚本名称链接到给定页面。如果@namespace 标记以“http://”开头,则其内容也将用于此目的。


版本控制


@version 脚本版本号


@updateURL:用户脚本的更新 URL。注意:需要一个@version 标签才能使更新检查工作


@downloadURL:URL定义检测到更新时下载脚本的 URL。如果使用值 none,则不会进行更新检查。


@supportURL 定义用户可以报告问题并获得个人支持的 URL。


访问限制


@include


脚本允许运行的页面,可以是多个标签实例。支持正则语句


注意:


@include 不支持 URL 哈希参数,必须匹配没有哈希参数的路径并使用


示例:


// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @include      https://www.tampermonkey.net/documentation.php?ext=dhdg
// @icon         https://www.google.com/s2/favicons?domain=tampermonkey.net
// @grant        none
// ==/UserScript==
(function() {
    'use strict';
    // Your code here...
    alert('HEllo')
})();


保存后,当我们访问https://www.tampermonkey.net/documentation.php?ext=dhdg的时候将会弹出Hello。如下图所示


640 (5).jpg


当@match 为 * 时,当访问任何一个页面都会alter出对应的内容来。如下图所示


640 (6).jpg


@match


@match 与 @include 非常相似,然而@match更安全。它对 * 字符的含义设置了更严格的规则。


@match 与 @include他们都是匹配基于一组由匹配模式定义的 URL。匹配模式本质上是以允许的方案开头的 URL。匹配模式本质上是以允许的方案(http、https、file 或 ftp,并且可以包含“*”字符)开头的 URL。特殊模式匹配以允许的方案开头的任何 URL。


'*' 的含义取决于它是在方案、主机还是路径部分。如果方案是 *,则它匹配 http 或 https,而不匹配 file、ftp 或 urn。如果主机只是 *,那么它匹配任何主机。如果主机是 *.hostname,则它匹配指定的主机或其任何子域。在路径部分,每个 '*' 匹配 0 个或多个字符。


@match 与 @include区别请参考


https://wiki.greasespot.net/Metadata_Block#.40match


匹配规则


https://developer.chrome.com/docs/extensions/mv3/match_patterns/


简单来说推荐使用@match


@exclude


不匹配,相当于访问黑名单。如果访问了@exclude中与之匹配的内容则不执行自定义的JavaScript代码


@exclude优先权大于match和@include。如果二者都匹配了,那么默认执行@exclude规则。也就是说即是’白名单‘也是’黑名单‘那么默认为’黑名单‘


第三方链接


@require


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


脚本中可以有任意数量的@require 键。每个 @require 在安装脚本时下载一次,并与脚本一起存储在用户的硬盘驱动器上。指定的 URL 可能与安装脚本的 URL 相关。


@resource


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


虽然 resourceName 是非语义的,但它应该符合 JavaScript 标识符限制。每个@resource 必须有一个唯一的名称。


每个@resource 在安装脚本时下载一次,并与脚本一起存储在用户的硬盘驱动器上。指定的 URL 可能与安装脚本的 URL 相关。


这些命名资源可以分别通过GM_getResourceText和GM_getResourceURL访问。


@connect


此标签定义域(无顶级域),包括允许通过 GM_xmlhttpRequest 检索的子域


可以简单的理解为发送请求。GET、POST、HEAD


@run-at


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


@run-at document-start 脚本将尽快注入。


@run-at document-body 如果 body 元素存在,脚本将被注入


@run-at document-end 该脚本将在调度 DOMContentLoaded 事件时或之后注入。


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


@run-at context-menu 如果在浏览器上下文菜单中单击该脚本(仅限基于 Chrome 的桌面浏览器),则会注入该脚本。


建议使用@run-at document-start


@grant


@grant 用于将 GM_* 函数、unsafeWindow 对象和一些强大的窗口函数列入白名单。如果没有给出@grant 标签,TM 猜测脚本需要。


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


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


如果脚本在单页应用程序上运行,那么它可以使用 window.onurlchange 来监听 URL 更改:


// ==UserScript==...// @grant window.onurlchange// ==/UserScript==if (window.onurlchange === null) {  // feature is supported  window.addEventListener('urlchange', (info) => ...);}


如果@grant 后跟“none”,则沙箱将被禁用,脚本将直接在页面上下文中运行。在此模式下,没有 GM_* 功能,但 GM_info 属性将可用。


// @grant none


推荐使用@grant none


@noframes


此标记使脚本在主页上运行,但不在 iframe 上运行。


Reference




目录
相关文章
|
6月前
|
JavaScript 中间件 Shell
JXcore 安装
JXcore 安装
63 2
|
Python
Anconda安装(超详细 3.5X)
Anconda安装(超详细 3.5X)
154 0
Anconda安装(超详细 3.5X)
KANZI-01-安装
第一次接触KANZI是在网上找模拟仪表相关的资料的时候发现的,那是看到时KANZI在Audio上面的应用,但是一直没有机会一览KANZI的真身,在网上是在找不到KANZI的安装包。
639 0
KANZI-01-安装
|
NoSQL MongoDB
Robomongo 的安装
Robomongo 的安装
139 0
Robomongo 的安装
|
Java 关系型数据库 MySQL
Linkis安装
Linkis安装
280 0
Linkis安装
bcftools安装
bcftools安装
815 0
bcftools安装
|
Ubuntu Linux
|
网络协议 数据安全/隐私保护 虚拟化