x-admin退出登录后再登录出现tab重新加载,x-admin退出账号时,关闭全部选项卡(tab)
问题
用layui写的x-admin后台框架是个很不错的前端框架。使用的时候遇到问题,退出登录后,再登录重新加载tab,同用户没问题,不同的用户登录会导致权限不同的人也访问到这个页面。所以这里直接关闭这个功能。
解决方法一
直接修改xadmin.js,注释掉以下代码即可
Xadmin.prototype.end = function() { var cate_list = this.get_cate_data(); /*for(var i in cate_list){ if(cate_list[i]!=null){ $('.left-nav #nav li').eq(cate_list[i]).click(); } }*/ };
直接这样注释,会导致,刷新也关闭所有标签页
解决方法二
<div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="false"> <ul class="layui-tab-title"> <li class="home"> <i class="layui-icon"></i>我的桌面 </li> </ul> <div class="layui-unselect layui-form-select layui-form-selected" id="tab_right"> <dl> <dd data-type="this">关闭当前</dd> <dd data-type="other">关闭其它</dd> <dd data-type="all">关闭全部</dd> </dl> </div> </div>
<div class="container"> <div class="logo"> <a href="/">XXX</a></div> <div class="left_open"> <a><i title="展开左侧栏" class="iconfont"></i></a> </div> <ul class="layui-nav right" lay-filter=""> <li class="layui-nav-item to-index"> <a href="" ></a></li> <li class="layui-nav-item to-index"> <a onclick="quit()" href="javascript:;" class="close-all" data-type="closeall">退出</a></li> </ul> </div>
//js代码 layui.use('element',function(){ var $ = layui.jquery; var element = layui.element;//Tab的切换功能,切换事件监听等,需要依赖element模块 var layer = layui.layer; var active = { //在这里给active绑定事件,后面可通过active调用这些事件 tabDeleteAll:function(ids){//删除所有 $.each(ids,function(i,item){ element.tabDelete("xbs_tab",item);//ids是一个数组,里面存放了多个id,调用tabDelete方法分别删除 }) } }; $(".close-all").click(function () { if ($(this).attr("data-type") == "closeall") { var tabtitle = $(".layui-tab-title li"); var ids = new Array(); $.each(tabtitle, function (i) { ids[i] = $(this).attr("lay-id"); }); active.tabDeleteAll(ids); } }) });
这样在退出的时候就可以随便吧选项卡关闭了