我正在尝试从用户通过firefox-addon本地访问的网页中保存favicon。我将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);
答案 0 :(得分:1)
根据文档,nsIWebBrowserPersist.saveURI
需要7个参数,而你只传递6个(缺少最后一个)。
<强> saveURI()强>
将指定的URI保存到文件。
void saveURI( in nsIURI aURI, in nsISupports aCacheKey, in nsIURI aReferrer, in nsIInputStream aPostData, in string aExtraHeaders, in nsISupports aFile, in nsILoadContext aPrivacyContext );
此bug也与此问题有关