3

我正在尝试创建一个插件,在用户登录到我的网站后,我将尝试读取该域的会话 ID,并将其用于与我的插件的进一步交互。我使用在线 firefox 插件生成器,并尝试了这个示例cookies mdn。通过使用此代码,它返回我无权阅读XPCComponents.classes

Fehler: An exception occurred.
Traceback (most recent call last):
  File "C:\Users\tasos\AppData\Roaming\Mozilla\Firefox\Profiles\812iobvo.default\flightdeck\resources\jid0-d0ba10rpeed0a0ftwmx80raes0q-at-jetpack-tasosthegreat-2-data\process.js", line 4, in 
Error: <https://builder.addons.mozilla.org> wurde die Erlaubnis für das Lesen der Eigenschaft XPCComponents.classes verweigert.

与在线插件生成器一起使用的代码是否正确?

这是我到目前为止的全部代码:

主.js:

var data = require("self").data;

var cm = require("context-menu"); 
cm.Item({   
     label: "My Menu Item",
     contentScriptFile: data.url('process.js') 
       });

和 process.js:

self.on("click", function (node, data) {


        var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);  
    var uri = ios.newURI("http://www.google.com/", null, null);  
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);  
    var cookie = cookieSvc.getCookieString(uri, null);  
});
4

1 回答 1

5

使用 SDK 构建的插件无法Components.classes直接访问。相反,他们需要使用chrome

var {Cc, Ci} = require("chrome");
var cookieSvc = Cc["@mozilla.org/cookieService;1"].getService(Ci.nsICookieService);

Cc代表Components.classesCi代表Components.interfaces

于 2011-12-09T21:40:50.180 回答