删除Cookie chrome扩展名

opc*_*0de 10 javascript google-chrome-extension

我想自动删除某个域上的所有cookie,所以我制作了一个扩展名.我能够查看该域的cookie,但我没有找到任何删除它们的方法

这是我的代码,函数eraseCookie只被调用一次

有什么建议 ?

function eraseCookie(name) {
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

$(document).ready(function() {


var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
  window.alert(cookies[i]);
  eraseCookie(cookies[i].split("=")[0]);
}

});
Run Code Online (Sandbox Code Playgroud)

我也在使用jquery,但我没有看到问题!

    {
        "name": "Gapa",
        "version": "0.1",
        "description": "",
        "browser_action":   {
            "default_icon": "sigla.png",
            "default_title": "",
            "popup": "hello.html"
        },
        "content_scripts": [
        {
          "matches": ["*://*.google.ro/*"],
          "js": ["jquery-1.8.2.min.js","cookie_handler.js"]
        }
      ],
       "icons": {
          "128":"sigla.png" },
       "permissions": [
        "cookies",
        "tabs",
        "*://*.google.ro/*"
      ],
      "manifest_version": 2


    }
Run Code Online (Sandbox Code Playgroud)

LE:这是我的脚本文件现在的样子:

$(document).ready(function() {

var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
  chrome.cookies.remove({"url": ".google.ro", "name":cookies[i].split("=")[0]}, function(deleted_cookie) { window.alert('deleted cookie') });
}

});
Run Code Online (Sandbox Code Playgroud)

Ark*_*ski 26

首先,您必须在清单中提供cookie权限.

其次,Chrome会为您提供Cookie api,其中删除功能已被本地化:

chrome.cookies.remove(object details, function callback);
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

chrome.cookies.remove({"url": "http://domain.com", "name": "cookieName"}, function(deleted_cookie) { console.log(deleted_cookie); });
Run Code Online (Sandbox Code Playgroud)

尝试使用此列出所选域的所有cookie(内部删除功能会删除此域中的所有cookie):

chrome.cookies.getAll({domain: "domain.com"}, function(cookies) {
    for(var i=0; i<cookies.length;i++) {
        chrome.cookies.remove({url: "http://domain.com" + cookies[i].path, name: cookies[i].name});
    }
});
Run Code Online (Sandbox Code Playgroud)

在你的manifest.json中添加:

  "background": {
    "scripts": ["background.js"]
  },
Run Code Online (Sandbox Code Playgroud)

并在background.js中包含建议的功能.

  • 编辑我的回答.您必须在清单中包含background.js并创建background.js文件.然后在其中包含此代码. (2认同)

Jon*_*Jon 8

我把Arkadiusz的答案拼凑在一起并得到了这个工作:

在manifest.json中:

"background": {
    "scripts": ["background.js"]
  },
"permissions": [
    "cookies",
    "https://*/",
    "http://*/"
  ]
Run Code Online (Sandbox Code Playgroud)

在background.js中:

chrome.cookies.getAll({domain: ".mydomain.com"}, function(cookies) {
    for(var i=0; i<cookies.length;i++) {
      console.log(cookies[i]);

      chrome.cookies.remove({url: "https://" + cookies[i].domain  + cookies[i].path, name: cookies[i].name});
    }
  });
Run Code Online (Sandbox Code Playgroud)