首页 > 解决方案 > browser.cookies.getAll() 总是不返回任何内容 - Firefox 扩展

问题描述

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

清单.json

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

cookies.js

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

控制台只是简单地记录[]为返回值。我不知道我哪里出错了,或者是浏览器的问题。Cookie 管理器运行良好,可以顺利列出所有浏览器 cookie。查看它的源代码,唯一的区别是它使用 cookie 存储 ID 来查询 cookie,而我什么也没用。

标签: javascriptcookiesfirefox-addon-webextensionsmanifest.json

解决方案


您可以使用browser.cookies.getAllCookieStores获取所有商店,将它们与您希望从中获取 cookie 的选项卡的 id 匹配(商店知道它在tabIds属性中的所有选项卡),然后storeIdbrowser.cookies.getAll.


推荐阅读