layer父子层之间的常用操作
访问父页面元素值
var parentId=parent.$("#id").val();//
访问父页面方法
var parentMethodValue=parent.getMethodValue();//
大概分成以下三种情况:
var index=layer.open();
var index=layer.alert();
var index=layer.load();
var index=layer.tips();
这样弹出的层都有对应的索引,需要关闭他们的时候直接关闭对应的层即可:layer.close(index);
如果是关闭最新的弹出层的时候
layer.close(layer.index) 它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
在iframe页面关闭自身时
var index=parent.layer.getFrameIndex(windown.name);
parent.layer.close(index);
此方法一般用于在iframe页关闭自身时用到
//假设这是iframe页
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
在实际项目中碰到如下情况
A-父iframe b-子iframe 在b中需要打开一个新的弹出层
top.layer.open({
type: 2,//这就是定义窗口类型的属性
title: '客服登录',
shadeClose: true,
shade: 0.3,
offset: "20%",
shadeClose : false,
area: ['60%','60%'],
content: res.data
});
var index = parent.layer.getFrameIndex(window.name);
top.layer.close(index);
关闭弹出层的子页面窗口
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
parent.layer.close(index);//关闭弹出的子页面窗口
在子页面刷新父页面
parent.location.reload(); // 父页面刷新
父子层之间传值传参的核心方法为:
layer.getChildFrame(selector, index) - 获取iframe页的DOM
其中,selector为iframe页面的选择器,用来选中iframe页面的元素。Index为层的索引。
1 在父页面上完成对子页面的数据渲染
在layer弹出层成功够,会回调success方法,重写该方法即可实现对子页面的数据渲染。
Layer.open(
{
success:function(layero, index){
Var body = layer.getChildFrame(“body”,index);//绑定父子之间的关系,用于数据传递,缺少则无法传递
var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
//获取子页面的元素,进行数据渲染
}
})
2 在子页面完成数据渲染
Layer.open(
{
success: function(layero, index){
Var body = layer.getChildFrame(“body”,index);//绑定父子之间的关系,用于数据传递,缺少则无法传递
var iframeWin = window[layero.find('iframe')[0]['name']];//得到iframe页的窗口对象
//调用子页面的方法,将父页面的值作为参数传递过去
iframeWin.method(pre);
}
})