我正在开发一个 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(使用前将#替换为@)