14

特定のドメインのすべての 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]);
}

});

私も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


    }

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') });
}

});
4

2 に答える 2

32

まず、マニフェストでCookieの許可を提供する必要があります。

次に、Chromeは、削除機能がローカライズされているCookieAPIを提供します。

chrome.cookies.remove(object details, function callback);

あなたはそれをそのように使うことができます:

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

これを使用して、選択したドメインのすべての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});
    }
});

マニフェスト.jsonに次を追加します。

  "background": {
    "scripts": ["background.js"]
  },

そしてbackground.jsに提案された関数を含めます。

于 2012-10-23T11:36:22.807 に答える