Chrome扩展程序的永久cookie不能正确到期?

埃里克

概要:

基本上,我使用后台页面来监听事件,例如:onStartup,onInstalled和cookies.onChanged来确定单击browserAction时应向用户显示哪个页面。我的问题涉及后者及其触发方式。


代码示例:

chrome.cookies.onChanged.addListener(function(info){
    if(info.cookie.name === "dummycookie"){
        /*  Possibilities of info.cause (as described in the docs):
        *       evicted
        *       expired
        *       explicit (it's used when setting or removing a cookie)
        *       expired_overwrite
        *       overwrite
        */
        if(info.cause == "overwrite" || (info.cause == "explicit" && !info.removed)){
            // Cookie was set (explicit or overwrite)
            chrome.browserAction.setPopup({ popup: "dummy1.html" });
        }
        else{
            // Cookie was removed (evicted, expired or expired_overwrite)
            chrome.browserAction.setPopup({ popup: "dummy2.html" });
        }
    }
});

事实是,尽管上面的代码可以很好地处理显式调用(cookies.set和cookies.get),但是当cookie的寿命期满时,它似乎不会触发。

从我进行的调试会话中,仅在cookie的预期到期日期之后进行显式调用时才触发代码。

例如,如果我在预期的到期时间之后拨打了cookies.getAll()之类的电话,浏览器就会意识到Cookie已过期,然后才触发该事件。

我错过了什么吗?如果我滥用Cookie API或误解了其背后的机制,有人可以启发我吗?

任何帮助是极大的赞赏 !

最好的祝福,

罗伯·W

对于罕见的操作,例如打开浏览器操作弹出窗口,您最好主动向cookie API查询相关cookie的最新状态,而不是通过侦听cookie的更改chrome.cookies.onChanged,因为:

  1. 如果观察到的错误是真实的,则可以解决该问题。
  2. 由于弹出窗口不是经常打开的,因此仅使后台/事件页面保持活动状态以仅通知Cookie更改是相当浪费的资源,尤其是考虑到此答案中提供的替代方法时。

示例(popup.js,需要activeTab和cookie许可):

// Example: Get the value of the _gaq cookie for the top-level frame of the
// current tab.
chrome.tabs.query({
    active: true,
    currentWindow: true
}, function(tabs) {
    // Need activeTab permission to read url, e.g. http://example.com/home
    var url = tabs[0].url;
    chrome.cookies.get({
        url: url,
        name: '_gaq'
    }, function(cookie) {
        // TODO: Do something with cookie, e.g. by updating the view (via DOM).
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序和Cookie

来自分类Dev

无法使用Chrome扩展程序设置Cookie

来自分类Dev

在Chrome扩展程序中正确链接JavaScript

来自分类Dev

javascript Chrome扩展程序无法读取httponly cookie

来自分类Dev

是否可以通过Chrome扩展程序内容脚本修改Cookie?

来自分类Dev

将Chrome扩展程序Cookie值名称设置为var

来自分类Dev

Chrome扩展程序api不检查cookie是否存在

来自分类Dev

Chrome扩展程序-如何正确(尽快)应用深色模式CSS?

来自分类Dev

Google Hangouts Chrome扩展程序中的永久登录按钮;无法登录并使用该应用

来自分类Dev

为什么$()不能正确扩展?

来自分类Dev

Chrome扩展程序的指标

来自分类Dev

Chrome扩展程序设置

来自分类Dev

Chrome扩展程序的指标

来自分类Dev

Chrome扩展程序-通知

来自分类Dev

Chrome扩展程序选项

来自分类Dev

Chrome扩展程序和Django:验证是否允许第三方Cookie

来自分类Dev

在Chrome扩展程序中使用时,提取API不会发送会话Cookie

来自分类Dev

如何在Chrome扩展程序的当前页面中激活所有cookie?

来自分类Dev

Chrome扩展程序和Django:验证是否允许第三方Cookie

来自分类Dev

chrome 扩展程序可以监控清单文件中允许域的安全 cookie 吗?

来自分类Dev

为什么Chrome扩展程序不能同时具有浏览器操作和页面操作?

来自分类Dev

Chrome扩展程序被拒绝,清单文件不正确。权限中的URL

来自分类Dev

Chrome扩展程序加载后,HTML页面显示不正确

来自分类Dev

在Chrome扩展程序中使用onClick在页面上添加按钮的正确方法

来自分类Dev

Chrome 扩展/cookie/await 回调函数

来自分类Dev

Chrome扩展程序和Blob

来自分类Dev

Chrome扩展程序的Print API

来自分类Dev

扩展程序内的Chrome应用

来自分类Dev

Chrome扩展程序注入iframe

Related 相关文章

  1. 1

    Chrome扩展程序和Cookie

  2. 2

    无法使用Chrome扩展程序设置Cookie

  3. 3

    在Chrome扩展程序中正确链接JavaScript

  4. 4

    javascript Chrome扩展程序无法读取httponly cookie

  5. 5

    是否可以通过Chrome扩展程序内容脚本修改Cookie?

  6. 6

    将Chrome扩展程序Cookie值名称设置为var

  7. 7

    Chrome扩展程序api不检查cookie是否存在

  8. 8

    Chrome扩展程序-如何正确(尽快)应用深色模式CSS?

  9. 9

    Google Hangouts Chrome扩展程序中的永久登录按钮;无法登录并使用该应用

  10. 10

    为什么$()不能正确扩展?

  11. 11

    Chrome扩展程序的指标

  12. 12

    Chrome扩展程序设置

  13. 13

    Chrome扩展程序的指标

  14. 14

    Chrome扩展程序-通知

  15. 15

    Chrome扩展程序选项

  16. 16

    Chrome扩展程序和Django:验证是否允许第三方Cookie

  17. 17

    在Chrome扩展程序中使用时,提取API不会发送会话Cookie

  18. 18

    如何在Chrome扩展程序的当前页面中激活所有cookie?

  19. 19

    Chrome扩展程序和Django:验证是否允许第三方Cookie

  20. 20

    chrome 扩展程序可以监控清单文件中允许域的安全 cookie 吗?

  21. 21

    为什么Chrome扩展程序不能同时具有浏览器操作和页面操作?

  22. 22

    Chrome扩展程序被拒绝,清单文件不正确。权限中的URL

  23. 23

    Chrome扩展程序加载后,HTML页面显示不正确

  24. 24

    在Chrome扩展程序中使用onClick在页面上添加按钮的正确方法

  25. 25

    Chrome 扩展/cookie/await 回调函数

  26. 26

    Chrome扩展程序和Blob

  27. 27

    Chrome扩展程序的Print API

  28. 28

    扩展程序内的Chrome应用

  29. 29

    Chrome扩展程序注入iframe

热门标签

归档