Firefox 插件下载.jsm

标签 firefox download firefox-addon firefox-addon-sdk download-manager

我正在尝试使用 Downloads.jsm Firefox 的 lib(它在 Firefox 23 中是新的)在 jetpack 插件中。

var {Cu} = require("chrome"); //works fine
const {Downloads} = Cu.import("resource://gre/modules/Downloads.jsm"); //works fine

但是执行这些函数中的任何一个都没有效果:
download = Downloads.createDownload({source: "http://cdn.sstatic.net", target: "/tmp/kaki.html"}); //download is an object but has no function "start"
Downloads.simpleDownload("http://cdn.sstatic.net","/tmp/kaki.html");

文档:
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/Download

您知道如何使用这些功能吗?我还没有在网上找到任何例子

最佳答案

API 函数返回 promise ,不是实际的下载对象。

简而言之,以下应该有效:

const {Downloads} = Cu.import("resource://gre/modules/Downloads.jsm", {});
var downloadPromise = Downloads.createDownload({source: "http://cdn.sstatic.net", target: "/tmp/kaki.html"})
downloadPromise.then(function success(d) {
  d.start();
});

阅读 promises ,并让与他们打交道更有趣,还有 Task.jsm

API 最近确实发生了很大变化;记录的是当前的 Aurora-25 或更高版本的 API。 “旧” API 记录在 source 中.

gist 中提供了一个更完整的 Firefox <25 支持示例。 .

关于Firefox 插件下载.jsm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18195513/

相关文章:

firefox - 传单瓷砖线条可见

css - Firefox/Mac 和 iPad 中的 @font-face 问题

css - 告诉你使用的 css 样式的 Firefox 插件

reactjs - 在 react 中下载文件

google-chrome - Google Chrome - anchor 标签的下载属性

javascript - .ondragstart 不等同于 .addEventListener ("dragstart"

javascript - 安装和升级基于 Firefox Add-on-SDK 的扩展时强制重新启动

pdf - 如何旋转文档页面以横向显示?

javascript - WebExtensions - 获取全局窗口属性

firefox - Firefox 插件的 nsIContentPolicy 示例?