gpt4 book ai didi

google-chrome-extension - 在 downloads.download() api 中指定路径/​​文件名在 Chrome 中不起作用,但在 Firefox 中起作用

转载 作者:行者123 更新时间:2023-12-05 05:11:01 26 4
gpt4 key购买 nike

指定下载文件的路径/文件名在 chrome.downloads api 中不起作用,但在 firefox browser.downloads api 中起作用。

我在 chrome 和 firefox 的 popup.js 中有一个非常简单的调用:

chrome.downloads.download({url: address, filename: path + "/" + filename, saveAs: false});

这是 Firefox 的另一个:

browser.downloads.download({url: addresss, filename: path + "/" + filename, saveAs: false});

它在 firefox 中如预期的那样完美运行,但无论如何,我无法让它在 chrome 中运行。即使将 google 的图像简单地下载到不同的文件名也永远无法在 chrome 中使用,但在 firefox 中可以,例如:

chrome.downloads.download({url: "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", filname: "temp/temp.png"});

我做错了什么?

最佳答案

已经有一段时间了,但我会为遇到此问题的任何人发布我的解决方案以进行扩展。事实证明,指定自定义文件名不起作用是因为存在扩展名冲突。

如果有另一个扩展使用 chrome.downloads API,特别是 chrome.downloads.onDeterminingFilename.addListener,它会尝试指定覆盖原始文件名建议的文件名。即使冲突的扩展程序没有更改您的下载选项,只是为 onDeterminingFilename 添加了一个监听器而没有执行任何逻辑,也会发生这种情况。这是一个已知的 Chrome 问题:https://bugs.chromium.org/p/chromium/issues/detail?id=579563 .该问题自 2016 年以来一直存在,但开发人员仍未解决。

解决方案:实现您自己的 chrome.downloads.onDeterminingFilename.addListener 以建议您的自定义文件名。确保您只捕获您自己开始的下载,但比较下载项目的 ID 和扩展 ID。唯一需要注意的是,冲突的扩展名会产生错误,提示他们无法建议自己的文件名。

Firefox 没有这个问题,因为他们的扩展 API 没有 onDeterminingFilename。

关于google-chrome-extension - 在 downloads.download() api 中指定路径/​​文件名在 Chrome 中不起作用,但在 Firefox 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55991260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com