Google chrome extension 下载url浏览器扩展

Google chrome extension 下载url浏览器扩展,google-chrome-extension,Google Chrome Extension,我试图通过编写chrome扩展代码来下载url。以下是myscript.js文件: chrome.downloads.download( {url: 'http://www.iana.org/_img/iana-logo-pageheader.png', saveAs: true }, function(res){alert(res);}); 这是我的manifest.json { "name": "My extension", "version":

我试图通过编写chrome扩展代码来下载url。以下是myscript.js文件:

chrome.downloads.download(
    {url: 'http://www.iana.org/_img/iana-logo-pageheader.png',
     saveAs: true
    },
    function(res){alert(res);});
这是我的manifest.json

{
  "name": "My extension",
  "version": "1.0",
  "manifest_version":2,
  "background_page": "background.html",
  "browser_action": {
    "name": "Manipulate DOM",
    "icons": ["icon.png"],
    "default_icon": "icon.png"
  },
  "permissions": ["downloads",
    "tabs", "http://*/*","https://*/*"
  ],
  "content_scripts": [
    {
      "matches": [ "http://*/*", "https://*/*"],
      "js": ["jquery.js","d3.v2.js","myscript.js"],
      "run_at": "document_end"
    }
  ]
}
但控制台显示错误“无法调用未定义的“下载”方法”。 请帮帮我。

的文档清楚地表明“API仍在开发中。它仅适用于开发者的Chrome用户”(emphasis mine,目前位于Chrome 23)

要使用该API,您需要获得Chrome的devcanary版本(请参阅下载链接)

另一种解决问题的方法是不使用
chrome.downloads
API。我一直在使用以下方法创建下载,它就像一个符咒(它在任何地方都可以工作:内容脚本/背景页/弹出窗口/任何东西):

a.单击()
使Chrome跟随链接。
download
属性使Chrome下载目标,并在“另存为”对话框中建议该属性的值作为文件名


此功能不仅限于Chrome扩展,您还可以在普通网页中使用它。请看一下此演示:。

谢谢。它确实很有帮助。但是如果我想将文件下载到特定的文件夹而不是默认的下载文件夹中,该怎么办呢?@skjindal93这两种方法都不可能使用。不过,这不应该是个问题:最重要的东西是可用的:1。文件本身。2.文件名。这取决于用户是否将其放在默认下载文件夹或其他位置。@RobW很抱歉,要恢复一个旧线程,但我刚刚尝试使用您的代码,它在我第一次调用它时起作用,但在我重新启动扩展之前,它不会再次起作用。你能想到为什么会发生这种情况吗?@Garrett我相信Chrome通过显示一个信息栏来防止滥用,该信息栏要求用户确认下载。但是,由于背景页是不可见的,因此似乎什么也没有发生。尝试在内容脚本中运行代码。@RobW如果是这样,为什么它会下载第一个而不下载其他的?
var a = document.createElement('a');
a.href = 'http://www.iana.org/_img/iana-logo-pageheader.png';
a.download = 'iana-logo-pageheader.png'; // Filename
a.click();                               // Trigger download