Google chrome extension 传递给chrome.downloads.download API的文件名被忽略

Google chrome extension 传递给chrome.downloads.download API的文件名被忽略,google-chrome-extension,Google Chrome Extension,我正在尝试使用Chrome.downloads.downloadAPI: chrome.runtime.onMessage.addListener( function (arg) { chrome.downloads.download({ url: arg[0], filename: arg[1] + ".jpg", conflictAction: "uniquify", saveAs: false }); }); 但是,

我正在尝试使用
Chrome.downloads.download
API:

chrome.runtime.onMessage.addListener(
  function (arg) {
    chrome.downloads.download({
      url: arg[0],
      filename: arg[1] + ".jpg",
      conflictAction: "uniquify",
      saveAs: false
    });
  });
但是,指定的
文件名
不受尊重-将使用原始文件名

我已经在Firefox上测试了相同的脚本,它在Firefox上的工作与预期的一样,但在Chrome上没有

我知道还有一个
chrome.downloads.onDeterminingFilename
事件,我可以注册一个监听器并从中覆盖文件名,但它不适合我的用例,因为我想使用的文件名被传递到
onMessage
监听器

我不确定是否有什么明显的遗漏。谢谢

****更新****


正如我后来意识到的,这个问题可能是由于我使用的是一台公司的笔记本电脑,因此还存在其他一些强制的Chrome扩展。

我建议使用
console.log(typeof arg[1])
在chrome.downloads.download API调用之前确认它是字符串。您还可以尝试使用模板文字来创建文件名

filename: `${arg[1]}.jpg`,

唯一明显的是arg[1]是一个无效的文件名。使用devtools或console.log调试代码。文档中说“绝对路径、空路径和包含反向引用的路径”将导致错误。另一个想法是Chrome拒绝与文件MIME不匹配的扩展名,或者这是Chrome中的一个bug。嘿@wOxxOm感谢您的快速响应!是的,我已经确定了
arg[1]
一点也不疯狂——它只是一个文件名字符串,没有抛出运行时错误,并且文件下载匹配的MIME(jpeg图像)。事实上,它在Firefox上运行得很好,这让人很困惑。@JianxinGao你能详细介绍一下你的更新吗?我发现有些人遇到了这样的问题,但我无法在自己的计算机上重新创建它。@Coles先生,哦,我想我的情况是,我在使用我的工作笔记本电脑,企业政策强制安装了几个chrome扩展,它们(或者可能只是其中一个)可能会受到干扰。是的,你是对的。当我在一个不同的chrome配置文件中尝试扩展时,它起了作用,只安装了几个扩展。但是,我仍然希望它在默认配置文件上工作,并寻找一种强制使用该文件名的方法。