我过去曾参与过Mozilla附加开发(初学者级别)。但在遇到XPCOM时,我真的很害怕,把它留在了中间。
最近只有我遇到了Add-on SDK,发现它非常酷,看到几个月之前的工作与SDK的工作时间不超过2天真的很吸引人。现在我再次被困在XPCOM模块上。
现在我真的想要利用XPCOM的强大功能但是至少需要一周时间才能在SDK环境中熟悉XPCOM。我需要什么代码才能获得我想要的功能?
对于每个用户会话,我想记录一些内容。我能够区分会话。我现在想要的是在用户机器上创建文件的代码,从附加组件中打开它并在其上写入内容。
访问书签和下载并阅读它们的代码。
如果我不得不从SDK切换回来,那将是一个令人心碎的时刻。
答案 0 :(得分:7)
chrome
package为您提供完整的XPCOM访问权限。对于文件访问,最好使用FileUtils
module:
var {Cc, Ci, Cu} = require("chrome");
var {FileUtils} = Cu.import("resource://gre/modules/FileUtils.jsm");
var file = FileUtils.getFile("ProfD", ["mylogfile.txt"]);
var stream = FileUtils.openFileOutputStream(...);
stream.write(data, data.length);
stream.close();
导入模块的一些不寻常的语法归因于bug 683217。请注意,FileUtils.openFileOutputStream()
仅适用于Firefox 7,如果您要附加到文件,则FileUtils.openSafeFileOutputStream()
不可用。
对于书签访问,您可以使用通常的code snippets,从:
开始var bmsvc = Cc["@mozilla.org/browser/nav-bookmarks-service;1"]
.getService(Ci.nsINavBookmarksService);