从Chrome扩展程序中删除Cookie

7

我希望能够从Chrome扩展程序中删除Cookie(根据一些条件)。根据chrome.cookies.remove文档,它需要一个对象,其中包含url字段(与cookie相关联的URL)和name字段(要删除的cookie的名称)。

现在,cookie具有以下字段:name、value、domain、hostOnly、path、secure、httpOnly、session、expirationDate、storeId,但没有url。我如何获取特定cookie的URL以便删除它?

供参考,我的一个cookie如下:

domain: ".google.com"
expirationDate: 1364393586
hostOnly: false
httpOnly: false
name: "PREF"
path: "/"
secure: false
session: false
storeId: "0"
value: "ID=8<snip>u"
2个回答

7
在一些试验和错误之后,我找到了获取URL的方法,这个方法看起来适用于所有情况(除了file://)。
function extrapolateUrlFromCookie(cookie) {
    var prefix = cookie.secure ? "https://" : "http://";
    if (cookie.domain.charAt(0) == ".")
        prefix += "www";

    return prefix + cookie.domain + cookie.path;
}

1

我将http://www.google.com作为URL传递,它可以工作。也许它只是想要与domain模式匹配的任何URL。

chrome.cookies.remove({url:"http://www.google.com", name: "PREF"});

(你还需要拥有google.com的域名权限)


谢谢,这似乎有效(尽管不适用于“httpOnly” cookie…) - Motti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接