google-chrome-extension - 下载网址chrome扩展程序

标签 google-chrome-extension

我正在尝试通过编写chrome扩展代码来下载网址。这是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"
    }
  ]
}

但控制台显示错误“无法调用未定义的方法'下载'”。
请帮我。

最佳答案

chrome.downloads 的文档明确指出“API仍在开发中。仅可用于dev early release channel 上的Chrome用户。” (重点是我的,目前在Chrome 23上)。

要使用该API,您需要获取Chrome版本的 dev canary 版本(有关下载链接,请参见this page)。

解决该问题的另一种方法是不使用chrome.downloads API。我一直在使用以下方法来创建下载文件,它的工作原理就像一个魅力(它可以在任何地方使用:内容脚本/背景页面/弹出窗口/其他):

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
a.click()使Chrome浏览器跟随链接。download属性使Chrome浏览器下载目标,并在“另存为”对话框中以文件名的形式建议该属性的值。

此功能不仅限于Chrome扩展程序,您还可以在普通网页中使用它。看一下这个演示:http://jsfiddle.net/dEeHF/

关于google-chrome-extension - 下载网址chrome扩展程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806908/

相关文章:

javascript - 循环中异步函数的最后一个值

google-chrome - Chrome 中间点击标签扩展

google-chrome-extension - 使用 TabCapture API 捕获选项卡时选项卡的音频消失

google-chrome-extension - Chrome : How to close tab from within a page?

javascript - Chrome 扩展 - 单击浏览器操作后将 css 注入(inject)页面

javascript - 在 Vue.js 组件中使用 Chrome 扩展 API

javascript - Chrome 扩展 : Getting a variable from background. js 到 popup.js

javascript - 无法从 Chrome 扩展中的外部 js 访问 HTML 元素

javascript - 如何通过 Chrome 扩展在网页内使用 Node 的请求库?

javascript - 使用 jspdf 将图像 url 转换为 pdf