1,因为监察管理页面是iFrame形式嵌套,其内容如下图所示。在此页面登录失效时,需要调用外层页面登录事件。(调用自己内部iFrame的window刷新,刷新是下图内部区域,不会刷新外部菜单栏)
2,所以内部iFrame接口无权限时,需要向外层发起通信,外层调用登录事件。
(1)注意,由于此项目在钉钉内打开,所以调用postMessage时,需要获取iFrame的window对象。
(2)由于内层项目的document是自己项目的html顶层,所以使用document.getElement无法获取到外层iFrame节点。所以在内外层同域的情况下,使用window.top获取最外层节点。
(1)测试环境配置的内外层项目是同域。
(2)本地环境,内外层项目域名相同,端口不通,所以window.top依旧获取不到。
(3)可以采用下图,将内外项目,加载页面初始时加上 document.domain = 'test.c3data.com.cn',内层使用window.top便可获取到外侧iFrame元素。test.c3data.com.cn 为本地 内外层项目的相同域名。