我能否以某种方式在我的客户端 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/