我正在使用 codeigniter session 来存储用户登录信息。当用户在多个选项卡中打开时,在一个选项卡中注销时,我希望在用户访问另一个选项卡时自动刷新页面。这可能吗?
最佳答案
刚刚对其进行了测试,我认为最简单的方法(似乎至少在 Chrome 中有效,但可能需要进一步测试)是设置 cookie。
在注销时执行类似 setcookie('loggedout',1)
的操作。您还需要在登录时执行相反的操作 - unset($_COOKIE['loggedout'])
那么您只需要一些简单的 Javascript...
function readCookie(name) {
var nameEQ = escape(name) + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) return unescape(c.substring(nameEQ.length, c.length));
}
return null;
}
window.setInterval(function() {
if(readCookie('loggedout')==1) {
window.location.assign('loggedout.html')
//Or whatever else you want!
}
},1000)
这将每秒检查一次以查看是否设置了 cookie。魔法。
关于javascript - 如何处理浏览器多选项卡中的用户注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692644/