1

ユーザーがFirefoxアドオンを介してローカルにアクセスするWebページからファビコンを保存しようとしています。ファビコンの 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.saveURI7 つのパラメーターが必要であり、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
);

このバグはこの問題にも関連しています

于 2013-09-25T17:46:09.853 に答える