首页 > 解决方案 > 在后台脚本中使用直接下载链接

问题描述

我正在制作下载图像扩展。目前我正在使用后台脚本使用直接下载链接并拦截并重命名它。

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,我可以在其中看到文档,它也被点击(我可以在控制台日志中看到“点击”的消息)但直接下载链接没有被激活。如果我直接单击链接,它可以工作,或者在内容脚本中使用相同的代码。

后台脚本是否有某些方面导致它不起作用?

标签: google-chromegoogle-chrome-extensionhyperlinkdownload

解决方案


推荐阅读