通过Firefox扩展将下载添加到Firefox

时间:2013-05-26 06:27:13

标签: firefox firefox-addon download

这是我使用addon-builder [builder.addons.mozilla.org/]开发的第一个Firefox扩展。

我的问题很简单,但在尝试了许多事情后,很多天,我都无法得到结果。

我想知道:如何将文件下载添加到Firefox下载程序?

我有一个网址: http:// example.com/file.zip ,文件位置如下: D:\ myFolder 。 我想通过我的firefox扩展程序添加此下载。

我搜索的内容是:

https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIWebBrowserPersist#saveURI%28%29

https://developer.mozilla.org/en-US/docs/Code_snippets/Downloading_Files

Components.utils.import("resource://gre/modules/PrivateBrowsingUtils.jsm");

const WebBrowserPersist = Components.Constructor("@mozilla.org/embedding/browser/nsWebBrowserPersist;1",
                                                 "nsIWebBrowserPersist");

var persist = WebBrowserPersist();

var targetFile = Services.dirsvc.get("Desk", Ci.nsIFile);
targetFile.append("file.bin");

// Obtain the privacy context of the browser window that the URL
// we are downloading comes from. If, and only if, the URL is not
// related to a window, null should be used instead.
var privacy = PrivateBrowsingUtils.privacyContextFromWindow(urlSourceWindow);

persist.persistFlags = persist.PERSIST_FLAGS_FROM_CACHE
                     | persist.PERSIST_FLAGS_REPLACE_EXISTING_FILES;

persist.saveURI(uriToSave, null, null, null, "", targetFile, privacy);

您是否可以从我应该获得最简单的下载功能开始。

1 个答案:

答案 0 :(得分:1)

Components.utils.import("resource://gre/modules/Services.jsm");
var {downloads}=Services;
downloads.addDownload(/*parameters*/);  //see documentation for parameters.

addDownload的文档:nsIDownloadManager#addDownload()

Services.jsm提供的各种服务的文档和目录:Services.jsm