在 Firefox 扩展中按域名/名称访问特定 cookie

2023-12-07

我正在开发一个 Firefox 扩展,需要从特定域访问特定 cookie。我有这段代码,可以获取所有域的所有 cookie,我如何仅请求我正在查找的 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);
    }
}

总而言之,我可以使用上面的代码找到我正在寻找的 cookie,但我不想遍历所有域中的所有 cookie。


您可以使用nsICookieManager2界面(原本的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 then.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Firefox 扩展中按域名/名称访问特定 cookie 的相关文章