【问题标题】:Remove Cookies by clicking on button - Web Extension API通过单击按钮删除 Cookie - Web 扩展 API
【发布时间】:2017-11-18 09:48:21
【问题描述】:

我是第一次处理 Firefox Web Extension API。我想通过单击一个按钮来删除 example.com 的所有 cookie。我有以下代码,但没有得到任何结果。

background.js

function onRemoved(cookie) {
  console.log(`Removed: ${cookie}`);
}

function onError(error) {
  console.log(`Error removing cookie: ${error}`);
}

function removeCookie() {
  var removing = browser.cookies.remove({
    url: "example.com"
  });
  removing.then(onRemoved, onError);
}

browser.browserAction.onClicked.addListener(removeCookie);

manifest.json

{

 "description": "RemoveCookie",
 "manifest_version": 2,
 "name": "remove-cookies",
 "version": "1.0",
 "icons": {
 "48": "icons/icon.png"
 },

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

"browser_action": {
  "default_icon": "icons/icon.png",
  "default_title": "Remove Cookie!"
},

"permissions": [
 "*://*.example.com/*",
 "cookies"
]
}

【问题讨论】:

    标签: javascript cookies firefox-addon-webextensions


    【解决方案1】:

    来自https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/cookies/remove

    cookies API 的 remove() 方法删除一个 cookie,给定它的名称和 URL。

    这意味着您还需要指定name 参数。

    此外,url 参数必须包含协议,否则 promise 将仅解析为 null(意味着找不到 cookie)。

    如果找不到与 details 参数匹配的 cookie,则以 null 履行承诺。


    话虽如此,您可以使用browser.cookies.getAll 获取给定 URL 的所有 cookie,然后删除每个给定名称的 cookie:

    function onRemoved(cookies) {
      console.log('Removed', cookies);
    }
    
    function onError(error) {
      console.log(`Error removing cookie: ${error}`);
    }
    
    function removeCookie() {
      var url = "http://example.com"; // NOTE the full url including protocol
      browser.cookies.getAll({ url: url })
      .then(function(cookies) {
        return Promise.all(cookies.map(function(cookie) {
          return browser.cookies.remove({ url: url, name: cookie.name });
        }));
      })
      .then(onRemoved, onError);
    }
    
    browser.browserAction.onClicked.addListener(removeCookie);
    

    【讨论】:

    • @HeScm 太棒了!如果对您有用,请考虑接受答案
    猜你喜欢
    • 1970-01-01
    • 2022-11-21
    • 2011-04-29
    • 2015-02-03
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多