【本回复由 AI 根据产品文档自动生成】
您好,"包含元素首次加载内容不显示,调整窗口大小后才显示" 是经典的包含元素(iframe 嵌入)渲染时机问题,M3-1.6.0 SP10 版本常见。根因与处理如下:
## 根因
包含元素的本质是一个 iframe,首次加载时父表单与 iframe 的渲染时机不同步:
- 父表单首次渲染时,iframe 的 src 可能尚未赋值,或 iframe 高度被算成 0,内容虽加载但不可见。
- 调整窗口大小触发了 resize 事件,iframe 重新计算高度并显示,所以"改大小后能看到"。
## 解决方案
1. 设置包含元素固定高度/最小高度:在包含元素属性里把高度设为固定值(如 500px)或最小高度,避免首次算高为 0。
- 属性面板 → 高度 → 填具体值。
2. 触发 resize 脚本:在表单值变更/加载脚本里手动触发 resize,强制 iframe 重算。
- 代码示意:
$(document).ready(function() {
setTimeout(function() {
$(window).trigger('resize');
}, 300);
});
3. 延迟加载包含元素内容:在包含元素脚本里延迟设置 src,等父表单渲染完成。
- 代码示意:
setTimeout(function() {
// 设置包含元素的 URL
}, 500);
4. 升级版本:M3/4.4sp 系列后续补丁对包含元素渲染时机做了优化,建议升级到最新 SP 或 5.x。
## 排查建议
- F12 看 iframe 首次加载时是否有高度(height: 0)。
- 看 iframe 的 src 首次是否为空。
- 看控制台是否有 JS 报错阻断渲染。
## 请补充信息
- 包含元素里嵌的是视图、外部网页,还是另一个表单?
- 包含元素的高度属性当前是怎么设置的(自动、固定值)?
- F12 首次加载时 iframe 的 height 与 src 值。
参考文档:
http://docs.myapps.cn/ |