tampermonkey 中文文档 下载 App

Tampermonkey GM 函数全景:脚本可用的扩展 API 地图

网页里的普通脚本被浏览器安全模型管得很严:不能跨域请求、不能写剪贴板、不能发系统通知。GM 函数是 Tampermonkey 提供给用户脚本的受控扩展接口——每用一样能力,就在 @grant 里声明一样。

两套写法:同步与异步

官方文档同时收录两套命名:

两套功能对应,混用没问题,声明 @grant 时写清楚用的是哪个。

按用途分类的地图

用途函数详解页
存数据GM_setValue / GM_getValue / GM_deleteValue / GM_listValues 及批量版 GM_*Values数据读写函数
跨域请求GM_xmlhttpRequest、GM_webRequest跨域请求函数
下载文件GM_download下载函数
通知GM_notification轻量 GM 函数
菜单命令GM_registerMenuCommand / GM_unregisterMenuCommand轻量 GM 函数
剪贴板GM_setClipboard轻量 GM 函数
新标签页GM_openInTab轻量 GM 函数
资源读取GM_getResourceText / GM_getResourceURL配合头部 @resource 使用
信息GM_info唯一不需要 grant 声明的属性
标签页数据GM_getTab / GM_saveTab / GM_getTabs按标签页存取临时状态
高级能力GM_addElement / GM_addStyle、GM_cookie.*、GM_audio.*、window.onurlchange见官方文档对应条目

使用规则速记

  1. 先声明后使用:头部 @grant 列出函数名,没声明的调用直接失败;
  2. none 关大门:@grant none 时全部 GM 函数不可用(GM_info 除外);
  3. 跨域要过两道门:@grant GM_xmlhttpRequest 只解决「能不能调用」,请求哪个域名还要 @connect 声明加用户确认,见跨域确认弹窗。

GM_info:了解运行环境

GM_info 返回脚本与运行环境的信息对象:脚本版本、匹配规则、沙箱模式、下载模式等。排查「脚本到底以什么配置在跑」时先打印它。

与权限体系的关系

GM 函数是扩展层面的授权。MV3 版本的 Tampermonkey 在这之上还有浏览器层面的「允许用户脚本」开关——脚本一个 GM 函数都没用也可能被那个开关拦住,见允许用户脚本开关。

各函数的参数细节以官方 Documentation 页为准,功能可能随版本变化。