You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Tampermonkey自动从基础认证站点下载脚本更新?

Tampermonkey脚本更新问题解决方案

问题核心原因

Tampermonkey的自动更新逻辑是先拉取@updateURL指向的元文件,对比其中的@version和本地脚本版本。如果元文件版本更高,才会触发@downloadURL的下载。你遇到的情况大概率是以下原因:

  • Tampermonkey还没到预设的更新检查周期,或者缓存了旧的元文件
  • 自动更新时Tampermonkey不会主动弹出Basic Auth验证窗口,导致下载请求被拦截

解决办法

1. 手动强制触发更新

直接在Tampermonkey面板找到该脚本,右键选择「检查更新」(或点击脚本详情页的「检查更新」按钮)。此时Tampermonkey会立即拉取最新的元文件,发现版本差异后会弹出Basic Auth窗口,输入账号密码即可完成更新。

2. 调整Tampermonkey更新设置

进入Tampermonkey的「设置」页面,找到「更新」板块:

  • 将「检查更新频率」调为「每次浏览器启动时」或「每天」,确保能及时获取新的元文件
  • 关闭「缓存更新请求」选项,避免Tampermonkey复用旧的元文件缓存

3. 嵌入认证信息到下载链接(仅限信任环境)

如果希望自动更新时无需手动输入密码,可以把Basic Auth的账号密码直接嵌入@downloadURL中,格式如下:

// @downloadURL https://用户名:密码@my.site/reserved/blah.user.js

⚠️ 注意:这种方式会把明文密码存在脚本里,仅适合个人使用或完全信任的环境,不要在公共脚本中使用。

4. 自行实现版本检测与提示(最灵活的方案)

如果上述方法都无法满足需求,可以在脚本内自定义版本检测逻辑,主动拉取公开的元文件对比版本,然后在页面上显示更新提示:

  • 首先给脚本添加@grant GM_info权限,用于获取当前脚本版本
  • 添加以下代码实现检测逻辑:
// 获取当前脚本版本
const currentVersion = GM_info.script.version;

// 每天检查一次版本(可自行调整间隔)
setInterval(async () => {
  try {
    // 拉取公开的元文件
    const res = await fetch('https://my.site/public/blah.meta.js');
    const metaText = await res.text();
    // 匹配元文件中的版本号
    const versionMatch = metaText.match(/\/\/ @version\s+(\S+)/);
    
    if (versionMatch && versionMatch[1] > currentVersion) {
      // 创建更新提示元素
      const updateNotice = document.createElement('div');
      updateNotice.style.cssText = `
        position: fixed; top: 20px; right: 20px;
        padding: 12px 18px; background: #f5a623; color: #fff;
        border-radius: 4px; z-index: 99999;
      `;
      updateNotice.innerHTML = `Tampermonkey脚本有新版本!<a href="https://my.site/reserved/blah.user.js" target="_blank" style="color:#fff; margin-left:8px;">点击更新</a>`;
      
      // 避免重复添加提示
      if (!document.querySelector('.tm-update-notice')) {
        updateNotice.classList.add('tm-update-notice');
        document.body.appendChild(updateNotice);
      }
    }
  } catch (error) {
    console.log('版本检查失败:', error);
  }
}, 86400000); // 86400000毫秒 = 1天

用户点击提示中的链接后,浏览器会自动弹出Basic Auth窗口,输入账号密码即可完成更新。

内容的提问来源于stack exchange,提问作者Sampisa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 12:17:15