最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
artdialog弹出层iframe间数据传递分析
时间:2022-06-25 17:46:59 编辑:袖梨 来源:一聚教程网
我做的框架是基于artDialog的,其提供的 iframeTool plugin 实现了多级弹出层均基于同一parent的方式,使视觉上的多层弹出突破了可视范围的限制。
但是,多个弹出层基于同一父页面,便导致一个难题,如何界定弹出层的级别。
在开发框架的时候,我认为自己已经解决了这个问题,就是通过 parent.iframes 数组的序号来判断,而后来发现datapicker插件会创建iframe,ie某些版本对parent.iframes的序号处理与众相反,因此导致了一些BUG。
由于在我框架中所以弹出层都是以lock形式弹出,即用遮罩锁定父页面,所以我认为上一个页面就是父页面。
如今,发表一下目前较完善处理办法:
//realparent是最终结果,以全局变量方式存在
realparent=parent; //初始值
//临时变量iframeIndexArr记录由artDialog实现的弹出层的真实序号
var iframeIndexArr=new Array();
//遍历parent.frames,通过name找出通过artDialog实现的弹出层,并把真实序号记录进iframeIndexArr中
for(var i=0;i
//若是artDialog,则记录其index
iframeIndexArr[iframeIndexArr.length]=i;
}
}
//若由artDialog实现的弹出层数量是2或以上,则认为上一个弹出层是其真实父页面
if(iframeIndexArr.length>1){
//若最小artDialog是当前弹出层,属于IE某些版本的倒序iframe模式,则下一序号就是真实父页面的序号
if(parent.frames[iframeIndexArr[0]].location.href==location.href){
realparent=parent.frames[iframeIndexArr[1]];
}
//正常情况,iframe正序排列,则倒数第二个序号就是真实父页面的序号
else{
realparent=parent.frames[iframeIndexArr[iframeIndexArr.length-2]];
}
}
取得了realparent,数据传递就迎刃而解了。
相关文章
- 无限暖暖搭乘大鸟巴士怎么玩 公测第三天每日任务做法介绍 12-27
- 奇迹暖暖绚光护佑搭配攻略 奇迹暖暖绚光护佑过关攻略 12-27
- 绝区零月城柳意像影画怎么样 12-27
- 无限暖暖翩翩愿飞去怎么样 12-27
- 黑神话悟空1.0.12.16581版本更新公告 12-27
- 光遇12.27红石碎片在哪里 12-27