如何从Chrome扩展程序中删除特定的Cookie?

时间:2020-05-30 06:36:39

标签: javascript google-chrome-extension

我是实现chrome扩展的新手,我希望能够从网站获取Cookie值,然后将其删除,重新加载网站,然后获取其他Cookie值。问题是我可以获取所需的cookie值,但是当我删除cookie并重新加载页面以再次获得该值时,它会以相同的方式返回,而不是生成新值。我的想法是,删除Cookie的方式是错误的。如果有人可以帮助我弄清楚我要去哪里错了,那将对您有所帮助,谢谢!

manifest.json

{
    "manifest_version": 2,
    "name": "xxxx",
    "version": "1.0",
    "permissions": [
        "cookies",
        "tabs",
        "activeTab",
        "http://*/*",
        "https://*/*",
        "<all_urls>"
    ],
    "content_scripts": [
        {
            "matches": [
                "<all_urls>"
            ],
            "js": ["content.js"]
        }
    ],
    "background": {
        "scripts": ["background.js"]
    },
    "browser_action": {
        "default_icon": "cookie.png"
    }
}

background.js

function cookieInfo(){
    chrome.cookies.getAll({url: url, name: "specificCookie"}, (cookies) => {
        //console.log("getting cookie")
        console.log(cookies[0].value)
        //return cookies
    });
}

function removeCookies(){
    chrome.cookies.getAll({domain: url}, function(cookies) {
        console.log('Cookies Removed')
        clearCookies(cookies);
    });
}

function clearCookies(cookies) {
    // iterate on cookie to get cookie detail
    for (let i = 0; i < cookies.length; i++) {
        let url = "https" + (cookies[i].secure ? "s" : "") + "://" + cookies[i].domain + cookies[i].path;
        let cname = cookies[i].name;

        // delete cookie
        chrome.cookies.remove({
            url: url,
            name: cname
        });
    }
}

chrome.browserAction.onClicked.addListener(buttonClicked);

function buttonClicked(tab){  
    cookieInfo();
    removeCookies();

}

content.js

chrome.runtime.onMessage.addListener(gotMessage);

function gotMessage(req, sender, res){
    console.log(req);
}

0 个答案:

没有答案