tampermonkey 中文文档 下载 App

Tampermonkey 兼容性设置:让老脚本正常运行的适配层

Tampermonkey 兼容性设置截图
兼容性设置

用户脚本生态比 Tampermonkey 老——很多脚本是给 Greasemonkey(Firefox 上的前辈)3.x 时代写的,API 行为与今天有差异。官方主页对此的说明:Tampermonkey 为老脚本提供兼容层(compatibility layer),并会自动检测需要哪些适配选项。

兼容层解决什么

Greasemonkey 时代的脚本常见的历史习惯:

Tampermonkey 的兼容性设置区(见上图)提供一组开关,逐项对齐这些历史行为。脚本大多能自动识别并按需开启,手动干预的场景是:老脚本装上后行为怪异,逐个开关试。

常见的兼容选项

选项对齐的历史行为
兼容元数据解析识别 Greasemonkey 时代的头部写法
兼容 forEach让 NodeList 等支持旧式遍历写法
兼容 wrappedJSObjectFirefox 上与页面对象交互的历史接口
兼容 powerful this旧脚本对回调 this 指向的假设

(各项以设置页实际显示为准,官方文档的 @sandbox 与兼容性条目有对应说明。)

装老脚本的检查顺序

  1. 先直接装,多数脚本兼容层自动搞定;
  2. 行为异常时看脚本说明页有没有标注「仅限 Greasemonkey」或要求的 API 版本;
  3. 打开兼容性设置逐项试;
  4. 确实跑不起来的年代久远脚本,考虑找替代维护版,或在 Script Update 设置里冻结它。

@sandbox 与兼容的关系

官方文档的 @sandbox 条目描述了运行环境的三个取值(raw / JavaScript / DOM),决定脚本注入到页面世界还是隔离环境——这层机制和兼容开关配合,覆盖了新旧脚本的运行需求。日常用户不需要动它,写脚本遇到「页面变量读不到」时再研究。

相关页面