2012-02-28 35 views
5

Firefox拡張機能を開発中で、特定のドメインから特定のCookieにアクセスする必要があります。私はすべてのドメインのすべてのクッキーを取得するこのコードを持っていますが、私が探しているクッキーだけを要求する方法はありますか?Firefoxの拡張機能でドメイン/名前で特定のCookieにアクセスする

var {Cc, Ci} = require("chrome"); 

var cookieManager = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); 

var count = cookieManager.enumerator; 

while (count.hasMoreElements()){ 
    var cookie = count.getNext(); 
    if (cookie instanceof Ci.nsICookie){ 
     console.log(cookie.host); 
     console.log(cookie.name); 
     console.log(cookie.value); 
    } 
} 

まとめると、私は上記のコードで探していますが、私はすべてのドメインからのクッキーのすべてを反復処理する必要がありますする必要はありませんクッキーを見つけることができています。

答えて

6

を使用できnsICookieManager2 interface(元nsICookieManagerインタフェースが凍結し、この拡張版が作成された理由である変更することができませんでした):

var cookieManager = Cc["@mozilla.org/cookiemanager;1"] 
         .getService(Ci.nsICookieManager2); 
var count = cookieManager.getCookiesFromHost("example.com"); 

注:凍結されたインターフェースの概念はGeckoの2.0で削除されました(Firefox 4)。それ以来、nsICookieManager/nsICookieManager2に似たいくつかのインターフェイスが統一されています - 将来のFirefoxバージョンnsICookieManager2でも消えるかもしれませんが、すべての機能はnsICookieManagerに公開されます。

+0

あなたは伝説です! – Manatok

+0

'getCookiesFromHost'が返すイテレータからクッキーを取得する方法の例を教えてください。 – MeLight

+1

完全な例はここにあります:https://developer.mozilla.org/en-US/docs/Code_snippets/Cookies – MeLight

関連する問題