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

Chrome/Opera GX扩展问题:下载文件主机名重命名失效

解决Chrome扩展下载文件按主机名重命名失效的问题

先看修正后的可用代码:

chrome.downloads.onDeterminingFilename.addListener((item, suggest) => {
  try {
    // 解析URL并去除www前缀
    const host = new URL(item.url).hostname.replace(/^www\./, '');
    // 保留原文件的扩展名
    const ext = item.filename.split('.').pop();
    // 拼接主机名+扩展名作为新文件名
    suggest({ filename: `${host}.${ext}` });
  } catch (err) {
    // 解析失败时使用原文件名
    suggest({ filename: item.filename });
  }
});

以下是关键修复点和验证步骤:

  • 声明downloads权限:必须在扩展的manifest.json中添加权限配置,Manifest V2/V3通用:
    {
      "permissions": ["downloads"]
    }
    
  • 保留原文件扩展名:原代码仅设置主机名作为文件名,缺少扩展名会导致Chrome自动补充默认后缀或忽略命名建议,拼接原扩展名后才能符合Chrome的命名规则。
  • 增加异常处理:若item.url为非法格式(如特殊下载链接),直接解析会报错导致监听器失效,try-catch可保证异常场景下仍能正常下载。
  • 确认监听器注册环境:Manifest V3需将代码放在service_worker对应JS文件中;Manifest V2放在background脚本内,确保扩展启动时能正确注册监听器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:45:29