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.

オンライン アドオン ビルダーで使用するのに適切なコードですか?

これは今までの私のコード全体です:

main.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.classes、のCiComponents.interfaces

于 2011-12-09T21:40:50.180 に答える