问题描述我们在使用easyui作为后台管理系统时,会使用tree组件来实现树形菜单,每次点击对应的菜单都会判断是否为一级菜单,是否已经存在//根据节点名判断节点是否存在if($("#tabs").tabs("exists",node.text)){//如果存在,直接选择$("#tabs").tabs("选择",node.text);}如果没有,我们会嵌套一个iframe标签,打开一个对应的html窗口$("#tabs").tabs("add",{//标题是当前节点的名字title:node.text,//无边框border:false,//是否显示关闭按钮closable:true,//嵌套iframe标签内容:""})这个时候有什么问题?有这样一种情况,当我们在同一个浏览器中打开A、B两个选项卡的后台管理页面,然后在A页面注销,然后进入A页面,点击“员工管理”,那么这个时候应该实现全局刷新,返回登录页面,如下图。由于已经注销,当前用户未认证内容:""所以这里的iframe表单的url地址就会变成login.jsp,这就演变成了iframe嵌套问题,如下图:解决方案在我们的html中,每一个打开的窗体都有一个window对象,比如上图,从内窗体来看,外窗体其实就是内窗体的父窗体(如果打开了很多嵌套,那么最外层的窗体就是top),如果要得到外层窗体也很简单,就是window.parent。这时候如果我们要打开的窗体i不是最外层窗体,我们只需要给最外层赋值formobjecttothecurrentform//如果当前窗体不是最外层窗体if(window!=top){//则将最外层窗体的地址赋值给当前窗体top.location.href=window.location.href;}问题解决了!