javascript - 我可以收到客户端 javascript 中 cookie 更改的通知吗

标签 javascript cookies

我能否以某种方式在我的客户端 javascript 中跟踪 cookie 的更改(对于我的域)。例如,当 cookie 被更改、删除或添加时调用的函数

按优先顺序

  • 标准跨浏览器
  • 跨浏览器
  • 特定于浏览器
  • 扩展/插件

为什么?因为我在窗口/选项卡#1 中依赖的 cookie 可以在窗口/选项卡#2 中更改。

我发现 chrome 允许扩展程序收到 cookie 更改的通知。但这是我最不喜欢的选择

最佳答案

一种选择是编写一个定期检查 cookie 更改的函数:

var checkCookie = function() {

    var lastCookie = document.cookie; // 'static' memory between function calls

    return function() {

        var currentCookie = document.cookie;

        if (currentCookie != lastCookie) {

            // something useful like parse cookie, run a callback fn, etc.

            lastCookie = currentCookie; // store latest cookie

        }
    };
}();

window.setInterval(checkCookie, 100); // run every 100 ms
  • 这个例子使用了一个持久内存的闭包。外层函数立即执行,返回内层函数,并创建私有(private)作用域。
  • window.setInterval

关于javascript - 我可以收到客户端 javascript 中 cookie 更改的通知吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344319/

相关文章:

python - Flask-Login 不会将 cookie 设置为具 Angular 浏览器?

javascript - 使用javascript匹配来提取字符串的一部分

javascript - jQuery :empty not working with input

javascript - Angular 2 显示混合元素数组

cookies - cookie less 域中的 cookie

javascript - 为什么我的脚本应该只在 IE 上触发,却在 Mozilla 上触发?

javascript - 如何安全地保存客户端的状态?

cookies - Casperjs - 在 thenOpen 之后不启用 Cookie

javascript - Sweetalert2 allowOutsideClick 在 toast 模式下不起作用,关闭按钮未出现在右侧

javascript - 将邻接列表转换为无向图链接的高性能方法