我有一个基本的FF插件,用于轮询window.document中页面DOM中的内容。当它看到它时,它应该保存页面。那是困难的部分。我不想复制“保存完成”的功能我只想在适当的时候从插件/插件中调用预先存在的功能。
这是XPCom的事吗?或者它是通过相关API的纯JavaScript吗?
iMacros for Firefox可以调用Save-as(不弹出关联的对话框),但我看不出如何。
有人可以建议如何调用更深层次的Firefox功能吗?
谢谢, - 保罗
PS - 我真的很喜欢Mozilla Archive Format, with MHT and Faithful Save,但我认为它再次复制功能。我的另一种方法是调用它的功能,但这对我来说和firefox原生一样不透明。
答案 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。