2011-12-10 5 views
1

ユーザーが自分のサイトにログインした後、そのドメインのセッションIDを読み取り、それを使用してアドオンとのさらなる対話に使用するアドオンを作成しようとしています。私は​​を使用して、私はクッキーを読みたい、このコードを持っている:変数が内容スクリプトの中で認識されない

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");'+ 
       '}});' 
}); 

をしかし、それはcookieMgrを言って、エラー私は「マイメニュー項目」ボタンをクリックするたびに、スロー、変数が定義されていません。

答えて

0

コンテンツスクリプトコンテキストは、アドオンスクリプトコンテキストから完全に切り離されています。 contentScriptを使用しているときにこれを把握するのはそれほど簡単ではありませんが、別のファイルに入れてcontentScriptFileを使用すると、より明白になります。コンテンツスクリプトはドキュメントのコンテキストで実行されますが、アドオンスクリプトは実行されません。