js控制弹出框仅在登录时弹出一次

如何控制弹出框只在登录完成时弹出一次, 关掉就不会再出来,切到别的页面也不会弹出来 。 下一次登录时才会再次弹出来?

clipboard.png

我现在做到的就是每次切到首页都会弹出,因为我在首页写了这样一段js代码

<script type="text/javascript">
        $(document).ready(function () {
                var userId = $('.userId').attr('value');
// 保存数据到sessionStorage
                window.sessionStorage.setItem("userId", userId);
// 从sessionStorage获取数据
                var data = window.sessionStorage.getItem("userId");

                if (data != null) {
                    $.ajax({
                        //url: positionPath+"/position/app/cityinfo-add",
                        url: positionPath + "/position/app/checkinfo",
                        data: {"id": data},
                        dataType: "json",
                        type: "post",
                        success: function (jsonData) {
                            console.log(jsonData["data"]["checkinfo"]);
                            console.log(jsonData["msg"]);
                            console.log(jsonData["status"]);
                            if (1 == jsonData["data"]["checkinfo"]) {
                                $('#register_perfectInfo').show();
                            }
                        }
                    });
                }
                // 从sessionStorage删除保存的数据
                window.sessionStorage.clear();

            }
        )
    </script>
阅读 3.7k
2 个回答

你可以将登录后的userId,或者登录后的token,存在session里,然后在首页的时候判断其有没有存在,如果不存在再弹出

首先你的登录状态在登录成功时要记录下来(cookie、localstorage等)

代码中加判断记录下来的状态是否存在,来控制是否再次弹出

其次要和后端沟通拿到状态的方式
结合后端校验记录的状态是否有效,来更新记录的状态,从而控制是否再次登录弹出,这样达到一个循环
校验的时间点,可以是页面重新加载(刷新),或者后台通过token在每次发请求时来校验返回登录状态是否有效

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题