1

ユーザーが自分のサイトにログインした後、そのドメインのセッション ID を読み取って、アドオンとのさらなる対話に使用するアドオンを作成しようとしています。私はオンライン アドオン ビルダーを使用しており、Cookie を読み取りたい次のコードがあります。

var data = require("self").data;
var {Cc, Ci} = require("chrome");
var cookieMgr = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); 
var cm = require("context-menu");
cm.Item({
  label: "My Menu Item",
  contentScript: 'self.on("click", function (node, data) {' +
                 'for (var e = cookieMgr.enumerator; e.hasMoreElements();) {  ' +
                 'var cookie = e.getNext().QueryInterface(Ci.nsICookie);   ' +
                 ' console.log(cookie.host + ";" + cookie.name + "=" + cookie.value + "\\n");'+
                 '}});'
});

しかし、「My Menu Item」ボタンをクリックするたびにcookieMgr、変数が定義されていないというエラーがスローされます。

4

1 に答える 1

0

コンテンツ スクリプト コンテキストは、アドオン スクリプト コンテキストから完全に切り離されています。これは を使っているとなかなかつかめないのですcontentScriptが、別のファイルに入れて で使うと分かりやすくcontentScriptFileなります。コンテンツ スクリプトはドキュメントのコンテキストで実行されますが、アドオン スクリプトはそうではありません。

于 2011-12-10T13:56:35.003 に答える