3

我正在学习 XPCOM 上的 XUL School 入门。我在访问组件时遇到问题。无论我尝试访问什么组件,例如(来自 MDN):

// xpconnect to cookiemanager
// get the cookie manager component in JavaScript
var cmgr = Components.classes["@mozilla.org/cookiemanager;1"].getService();
cmgr = cmgr.QueryInterface(Components.interfaces.nsICookieManager);

我不断收到错误“TypeError:Components.classes 未定义。”。其他地方说这可能是其他附加组件有问题的问题,所以我在安全模式下重新启动了 Firefox,但我仍然遇到了这个问题。

这里的其他问题似乎与此类似,说明组件需要在清单文件中注册;但是,这些似乎是指用户添加的组件。这是这里的情况吗?我究竟做错了什么?

编辑:我安装了 XPCOMViewer,我可以看到组件在那里。当我使用 XPCOMViewer 生成 JavaScript 来访问组件时,它提供的内容与我在上面发布的完全相同。这里到底发生了什么?

4

1 回答 1

1

试试这个:

const {Cc,Ci,Cu} = require("chrome");
var cmgr = Cc["@mozilla.org/cookiemanager;1"].getService();
cmgr = cmgr.QueryInterface(Ci.nsICookieManager);
于 2012-10-05T08:55:02.280 回答