首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我想下载时,哪里可以正确地使用API "chrome.downloads“?

当我想下载时,哪里可以正确地使用API "chrome.downloads“?
EN

Stack Overflow用户
提问于 2021-12-21 20:30:07
回答 1查看 640关注 0票数 1

Ⅰ。引言

我读了很多书,尝试过各种使用chrome.downloads API的方法。但到目前为止,我仍然无助于找到一种使用chrome.downloads API的方法。

医生们的指示似乎对我没有多大帮助。所以我决定来这里向大家介绍我所面临的问题。我希望它能帮助很多人。

我的项目使用清单版本3。

下面是该项目的GitHub链接:https://github.com/ATU8020/Use-API-chrome.downloads.git

Ⅱ。提出问题

使用了一些相关概念:

  1. 服务工作者
  2. 内容脚本
  3. 异步功能
  4. 同步函数

问题

我知道服务工作者需要异步功能。

侦听器必须从页面开始同步注册。链接不会异步注册监听器,因为它们不会被正确触发。链接

但是chrome.downloads.download API返回一个Promise

医生。

这让我很困惑。我也尝试过其他方法,比如内容脚本。但是在阅读了文档之后,我知道API chrome.downloads不能直接使用。

请参阅内容脚本文档。

评论

这是我问题的症结所在。任何建设性的意见和有用的信息,我们将永远感激。

Ⅲ。更多信息

如果在文件chrome.downloads中使用API popup.js,它可以工作;这意味着什么?

我知道这可能是另一种解决办法。

但是,当您单击一个download时,如果您想要执行类似contextMenu的操作呢?有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-12-21 20:47:38

该方法返回承诺的事实与侦听器是注册的方式无关。

您可以在后台脚本中的侦听器中调用异步代码。

  • 忽略结果: chrome.contextMenus.onClicked.addListener(info => { chrome.downloads.download({url: info.linkUrl});};
  • 使用结果: chrome.contextMenus.onClicked.addListener(async info => { const downloadId = chrome.downloads.download({url: info.linkUrl});console.log('downloadId:',downloadId);}; 当心:chrome.runtime.onMessage监听器还没有与async函数一起工作,更多信息
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70441282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档