无法访问任何XPCOM组件

时间:2012-10-01 16:32:52

标签: javascript firefox-addon xul xpcom

我正在XPCOM上学习XULOM的入门读物。我无法访问组件。无论我尝试访问哪个组件,例如(来自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 is undefined。”。其他地方说这可能是其他附加组件有问题的问题,所以我在安全模式下重启Firefox但我仍然遇到这个问题。

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

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

1 个答案:

答案 0 :(得分:1)

试试这个:

const {Cc,Ci,Cu} = require("chrome");
var cmgr = Cc["@mozilla.org/cookiemanager;1"].getService();
cmgr = cmgr.QueryInterface(Ci.nsICookieManager);