1

我是 Firefox 插件系统的新用户。我想创建一个插件,可以在一个 que 中下载多个文件,然后打开它们进行练习。

我的问题是是否有办法在插件中从 Internet 下载文件。我知道 os.file 的存在(尽管从提供的示例中理解如何使用它对我来说并不容易)。接下来我想知道是否有一种方法可以使用默认程序执行文件。

4

1 回答 1

1

从 Firefox 26 开始,在附加组件 SDK、restartless/bootstrap 或基于覆盖的扩展中,从附加组件中下载文件的最合适方法是使用Downloads.jsm JavaScript 代码模块。

从 MDN Downloads.jsm页面下载到本地文件示例:

Components.utils.import("resource://gre/modules/Downloads.jsm");
Components.utils.import("resource://gre/modules/osfile.jsm")
Components.utils.import("resource://gre/modules/Task.jsm");

Task.spawn(function () {
  yield Downloads.fetch("http://www.mozilla.org/",
                        OS.Path.join(OS.Constants.Path.tmpDir,
                                     "example-download.html"));
  console.log("example-download.html has been downloaded.");
}).then(null, Components.utils.reportError);

如果您想像用户启动它一样启动下载,那么您应该看到我对如何从插件启动正常下载的回答。

于 2014-12-30T18:28:39.390 回答