1

我正在尝试从用户通过 Firefox 插件在本地访问的网页中保存网站图标。我将 favicon 的 URL 存储为 nsIURI 并尝试使用 saveURI 方法,但它在 persist.saveURI 行上失败。以下是我当前的代码。

var path = "/home/testing.ico";             

var uri  = Cc['@mozilla.org/network/standardurl;1'].createInstance(Ci.nsIURI);

var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); 

var persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"]
.createInstance(Ci.nsIWebBrowserPersist);

uri.spec = tab.activeTab.url + "favicon.ico";

file.initWithPath(path);

persist.saveURI(uri, null, null, null, "", file, null);
4

1 回答 1

1

根据文档,nsIWebBrowserPersist.saveURI需要 7 个参数,而您只传递了 6 个(缺少最后一个)。

保存URI()

将指定的 URI 保存到文件。

void saveURI(
  in nsIURI aURI,
  in nsISupports aCacheKey,
  in nsIURI aReferrer,
  in nsIInputStream aPostData,
  in string aExtraHeaders,
  in nsISupports aFile,
  in nsILoadContext aPrivacyContext
);

错误也与此问题有关

于 2013-09-25T17:46:09.853 回答