javascript - 如何处理浏览器多选项卡中的用户注销?

标签 javascript php codeigniter session

我正在使用 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/

相关文章:

php - AJAX 和 jQuery 与 MVC

mysql - CodeIgniter 事件记录调用多个存储过程的问题

php - 位置.路径名

由于 innerHTML 的使用,JavaScript onclick 函数未绑定(bind)

javascript - 如何在React JS中正确导入组件: expected a string but got: object ERROR

php - EasyAppointments 和 Bootstrap 网站之间的共享登录 session

php - iPhone 应用程序开发 - mysql-> php -> iphone

javascript - YouTube解密签名无法正常工作

php - codeigniter 选择结果数组格式

php - CodeIgniter 从数据库中获取数据