如何实现layer双层弹窗子页面向父页面传递数据
方式1:
layer.open({
type: 2
,title: '详细'
,content: 'layerWindow/detail.html' //需要打开的页面链接
,maxmin: true
,area: ['500px', '450px'],
success: function(layero, index){
var body = layer.getChildFrame('body',index); //建立父子联系
var iframeWin = window[layero.find('iframe')[0]['name']];
// iframeWin.method(); //这句话的意思是可以通过ifarmeWin调用子页面的方法
// console.log(body.html()) //得到iframe页的body内容
// body.find('input').val('Hi,我是从父页来的')
var inputList = body.find('input'); //取得子页面中input输入框
//var dataLists= [1000,11111,11,1333,1,1,1,1,1,1,1,1,1,11,,11,1,1];测试数组
for(var j = 0; j< inputList.length; j++){ //把父页面的数据放到子页面的input框中
body.find(inputList[j]).val(dataLists[j]);
}
}
});
在此方式中由于使用若依框架使用的content是接口传导的导致获取不到其子页面内容,而后我使用获取当前弹出口的方式直接获取layero得到iframe中的内容:
function cron() {
var url = 'system/rule/cron';
var height = $(window).height() - 50;
top.layer.open({
maxmin: true,
title: "Cron表达式生成器",
type: 2,
area: ['800px', height + "px"], //宽高
shadeClose: true,
content: url,
btn: ['确定','取消'],
btn1:function (index,layero){
var cron = $(layero).find('iframe').contents().find("#cron")[0].value; //******
$('#corn').val(cron);
console.log(cron)
parent.layer.close(index);
},
btn2:function(index,layero){
parent.layer.close(index)
}
});
}
标签:body,layer,var,传递数据,layero,find,页面
From: https://www.cnblogs.com/zhaiew/p/17239572.html