diff --git a/public/static/plugs/ulthon-admin/admin-core.js b/public/static/plugs/ulthon-admin/admin-core.js index ff2808b..0fc21cb 100644 --- a/public/static/plugs/ulthon-admin/admin-core.js +++ b/public/static/plugs/ulthon-admin/admin-core.js @@ -13,11 +13,29 @@ }; // body 解析完成后才执行打类:本脚本位于 head,立即执行时 $('body') 为空集合导致类未打上; - // 仅框架页(pageType=index)及其 iframe 内容页(parent.pageType=index)执行, - // 登录页等独立顶层页面不打皮肤类,维持既有视觉 + // 仅框架页(pageType=index)及其 iframe 子孙页执行:沿 parent 链向上查找 pageType=index。 + // 旧判断只看直接 parent 一层,会漏掉 layer 弹层 iframe(其 parent 是内容页窗口而非主框架), + // 导致弹层内组件回落 layui 原生绿与内容页皮肤割裂(issue #7); + // 登录页等独立顶层页面不打皮肤类,维持既有视觉;跨域 parent 读取以 try-catch 兜底 $(function () { - var in_frame = window.parent && window.parent != window; - if (window.pageType == 'index' || (in_frame && window.parent.pageType == 'index')) { + var under_index = false; + try { + var w = window; + while (w) { + if (w.pageType == 'index') { + under_index = true; + break; + } + if (w.parent && w.parent != w) { + w = w.parent; + } else { + break; + } + } + } catch (e) { + under_index = false; + } + if (under_index) { window.onInitElemStyle(); } });