fix(theme): 弹层iframe沿parent链继承皮肤类,修复弹层内单选复选回落原生绿(pro#7)

This commit is contained in:
augushong
2026-10-09 13:24:34 +00:00
parent 42fcf3bbce
commit f101e89767

View File

@@ -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();
}
});