google-chrome - 在后台脚本中使用直接下载链接
问题描述
我正在制作下载图像扩展。目前我正在使用后台脚本使用直接下载链接并拦截并重命名它。
const downloadLinkA = document.createElement("a");
downloadLinkA.href = givenObj.imageLink;
downloadLinkA.download = "test.png";
downloadLinkA.onclick = function() {
bkg.log("clicked");
}
document.body.appendChild(downloadLinkA);
downloadLinkA.click();
bkg.log(document);
//downloadLinkA.remove();
chrome.downloads.onDeterminingFilename.addListener((downloadItem, suggest) => {
if (downloadItem.url == givenObj.imageLink) {
bkg.log("intercept ",givenObj, " ; ", downloadItem);
suggest({filename: givenName, conflictAction: "uniquify"});
}
});
givenObj 是一个包含图像所有信息的对象, givenObj.imageLink 是直接下载链接。
正在创建downloadLinkA,我可以在其中看到文档,它也被点击(我可以在控制台日志中看到“点击”的消息)但直接下载链接没有被激活。如果我直接单击链接,它可以工作,或者在内容脚本中使用相同的代码。
后台脚本是否有某些方面导致它不起作用?
解决方案
推荐阅读
- java - Avro 生成带有 json 转换的类问题 [kotlin]
- python - 两个数据之间的相关性
- django - psycopg2 无法在 Mojave - macOS - 10.14.5 的 virtualenv 2.7 中安装
- java - Lambda 不会覆盖来自单独文件的接口方法
- c++ - 在#include“iomanip”库中使用 setiosflags() functoin 的科学属性后,如何在 C++ 中将数字恢复为正常形式
- postgresql - Postgres 9.6 视图上的更新规则
- python - 添加keras层的问题
- python - 使用 .loc 方法同时选择多个列和切片列
- gradle - AntBuilder 在 build.gradle.kts 上使用 ant.importBuilder() 导入 2 个或更多 build.xml 时忽略目标
- regex - 匹配第一个单词和最后一个单词之间的文本