保存 URI 不起作用

saveURI not working

本文关键字:不起作用 URI 保存      更新时间:2023-09-26

我正在尝试从用户通过火狐插件在本地访问的网页中保存网站图标。我将网站图标的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);

根据文档,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
);

此错误也与此问题有关