开发一个Firefox插件/插件,从FF自己的一组功能中调用“另存为”

时间:2011-07-07 03:04:23

标签: firefox-addon xpcom

我有一个基本的FF插件,用于轮询window.document中页面DOM中的内容。当它看到它时,它应该保存页面。那是困难的部分。我不想复制“保存完成”的功能我只想在适当的时候从插件/插件中调用预先存在的功能。

这是XPCom的事吗?或者它是通过相关API的纯JavaScript吗?

iMacros for Firefox可以调用Save-as(不弹出关联的对话框),但我看不出如何。

有人可以建议如何调用更深层次的Firefox功能吗?

谢谢, - 保罗

PS - 我真的很喜欢Mozilla Archive Format, with MHT and Faithful Save,但我认为它再次复制功能。我的另一种方法是调用它的功能,但这对我来说和firefox原生一样不透明。

1 个答案:

答案 0 :(得分:2)

您可以使用nsIWebBrowserPersist.saveDocument():

var persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].
  createInstance(Ci.nsIWebBrowserPersist);
var localPath = Cc["@mozilla.org/file/local;1"].
  createInstance(Ci.nsILocalFile);
localPath.initWithPath(pathToLocalDirectory);
var localFile = localPath.clone();
localFile.append("mylocalfile.html");
persist.saveDocument(document, localFile, localPath, null, 0, 0);

密钥是第三个参数,它指定应存储链接URI的位置。有关完整文档,请参阅http://mxr.mozilla.org/mozilla2.0/source/embedding/components/webbrowserpersist/public/nsIWebBrowserPersist.idl#256