browser.cookies.getAll() 始终不返回任何内容 - Firefox 扩展

问题描述 投票:0回答:3

我一直在尝试使用

browser.cookies.getAll()
列出我的扩展程序中的所有浏览器 cookie。起初,我以为是权限问题,但我的权限似乎设置正确。这是我的代码:

manifest.json

{
    "manifest_version": 2,
    "name": "CookieExample",
    "version": "0.1",
    
    "applications": {
        "gecko": {
            "id": "[email protected]"
        }
    },
    
    "permissions": [
        "cookies",
        "webNavigation",
        "webRequest",
        "webRequestBlocking",
        "<all_urls>"
    ],
    
    "background": {
        "scripts": ["cookies.js"]
    }        
}

cookies.js

browser.cookies.getAll({}, function(cookies) {
    console.log(cookies);
});

控制台只是将

[]
记录为返回值。不知道是哪里出了问题,还是浏览器的问题。 Cookie Manager 工作得很好,可以顺利列出所有浏览器 cookie。查看其源代码,唯一的区别是它使用 cookie 存储 ID 来查询 cookie,而我什么也没使用。

javascript cookies firefox-addon-webextensions manifest.json
3个回答
0
投票

您可以使用

browser.cookies.getAllCookieStores
获取所有商店,将它们与您想要 cookie 的选项卡的 id 进行匹配(商店知道
tabIds
属性中的所有选项卡),然后将
storeId
传递给
browser.cookies.getAll
.


0
投票

来自 mozilla 文档

function logCookies(cookies) {
  for (let cookie of cookies) {
    console.log(cookie.value);
  }
}

var gettingAll = browser.cookies.getAll();
gettingAll.then(logCookies);

0
投票

browser.cookies.getAll() 总是不返回任何内容

有一些 javascript 函数(方法)与 safari 和 firefox 不兼容。 其中之一是 cookieStore.getAll() 为了使用它们,我们可以使用
const allCookies = document.cookie.split(';');

© www.soinside.com 2019 - 2024. All rights reserved.