Javascript 检查文件是否正在使用api在Chrome中下载

Javascript 检查文件是否正在使用api在Chrome中下载,javascript,html,json,google-chrome,google-chrome-extension,Javascript,Html,Json,Google Chrome,Google Chrome Extension,我计划开发一个Google Chrome扩展,它充当下载管理器ie。当用户从浏览器下载任何项目时,扩展必须捕获它并在顶部显示其下载进度 因此,我已经完成了名为manifest.json和popup.html的两个FLE manifest.json 正在运行的主文件 { "manifest_version": 2, "name": "One-click Kittens", "description": "something", "version": "1.0", "permiss

我计划开发一个Google Chrome扩展,它充当下载管理器ie。当用户从浏览器下载任何项目时,扩展必须捕获它并在顶部显示其下载进度

因此,我已经完成了名为
manifest.json
popup.html
的两个FLE

manifest.json 正在运行的主文件

{
  "manifest_version": 2,
  "name": "One-click Kittens",
 "description": "something",
  "version": "1.0",
  "permissions": [
"<all_urls>",
"downloads"
  ],

 "content_scripts": [
{

  "matches": ["<all_urls>"],
  "js": ["myscript.js"]
}
  ],





 "browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
{
“清单版本”:2,
“名称”:“一键小猫”,
“描述”:“某物”,
“版本”:“1.0”,
“权限”:[
“但这没有帮助。可能是因为我不是谷歌API的专家。

。例如,正如Graham t所建议的,您可能可以使用以下示例扩展所使用的:和

chrome.downloads

  • 使用chrome.downloads API以编程方式启动、监视、操作和搜索下载
从下载管理器按钮:

DownloadItem.prototype.onChanged = function(delta) {
  for (var key in delta) {
    if (key != 'id') {
      this[key] = delta[key].current;
    }
  }
  this.render();
  if (delta.state) {
    setLastOpened();
  }
  if ((this.state == 'in_progress') && !this.paused) {
    DownloadManager.startPollingProgress();
  }
};

我建议查看示例代码的其余部分,因为它应该更清楚地说明如何正确使用chome.downloads。

我从未进行过扩展开发,但看起来您需要签出downloadItem类型。它具有bytesReceived和fileSize属性。onChanged方法似乎不支持bytesReceived,但必须有将事件绑定到下载数据量的其他方法。@GrahamT我已签出它。但我不知道如何开始。我希望用户从页面下载所选项目。我不希望在下载中绑定项目api@AvinashBabu我提供的代码有什么进展吗?@JSuar没有,没有(@AvinashBabu您是否查看了下载管理器按钮代码的其余部分?是的,
是一个
下载项
对象。有关此对象的详细信息,请参见:
<script>
var c = chrome.downloads.search({query: }, function(results){
            var formattedResults = [];
            for(var i in results) {

                chrome.downloads.download(
                    {
                        method: "POST",
                        filename: results[i]
                    }, function () {
                        if(results[i] == undefined ) {
                            console.log('files arent located');
                        } else {
                            console.log('its downloading');
                        }



)

})

</script>
DownloadItem.prototype.onChanged = function(delta) {
  for (var key in delta) {
    if (key != 'id') {
      this[key] = delta[key].current;
    }
  }
  this.render();
  if (delta.state) {
    setLastOpened();
  }
  if ((this.state == 'in_progress') && !this.paused) {
    DownloadManager.startPollingProgress();
  }
};