tampermonkey 中文文档 下载 App

GM_download:脚本下载文件与扩展名白名单设置

GM_download 让脚本替你下载文件。官方文档同时给出了完整的安全护栏——毕竟「脚本往硬盘写文件」是敏感能力。

基本用法

GM_download("https://example.com/file.txt", "file.txt");

const dl = GM_download({
  url: "https://example.com/file.txt",
  name: "file.txt",
  saveAs: true,          // 弹出另存为对话框(仅 Browser API 模式)
  conflictAction: "uniquify", // 重名处理:uniquify / overwrite / prompt
  onload: () => console.log("完成"),
  onerror: (e) => console.log(e.error),
  onprogress: (p) => console.log(p)
});

// 取消下载
window.setTimeout(() => dl.abort(), 5000);

五种错误码

onerror 回调的 error 字段(官方文档全列):

错误码含义
not_enabled下载功能没被用户开启
not_whitelisted文件扩展名不在白名单里
not_permitted功能开了,但浏览器没给下载权限
not_supported当前浏览器/版本不支持
not_succeeded下载启动失败或中途失败

打开下载功能

官方 FAQ 的设置流程:

  1. 进管理面板 → 设置页;
  2. 找到 Downloads(下载)区;
  3. Download Mode(下载模式)选 Browser API;
  4. 首次使用会弹通知,点通知授予下载权限;
  5. 检查 Whitelisted File Extensions(白名单扩展名)列表。

下载模式共有 native、browser、disabled 三种取值(GM_info 的 downloadMode 属性可查当前值);版本日志还提到新版把下载权限改为按次弹窗确认,可通过把下载模式设为 Native 跳过。

白名单是安全护栏

官方在 FAQ 里专门加粗提醒:往硬盘下载文件涉及安全,务必只放行不可执行文件的扩展名(如 .txt、.jpg、.zip 这类被动格式),不要把 .exe、.bat、.cmd 之类可执行扩展加进白名单——脚本一旦被投毒,白名单就是最后那道闸。

排障速查