1.首先在layer.open中的success回掉函数中通过var body = parent.layui.layer.getChildFrame(‘body’, index);获取当前文档对象,然后将当前的iframe名称通过 body[0].id = window.name;赋值给body中的id暂时存储起来,方便子页面获取iframe的名称,代码如下:
A.父页面代码:
parent.layui.layer.open({
type: 2,
skin: 'layer-class',
area: ['1000px', '595px'],
title: '预案编辑',
maxmin: true,
resize: true,
content: " ../AddEditBudgetstone/AddEditBudgetstone.html?type=edit&&flag=1&&planid=" + pid + "",
success: function (layero, index) {
//获取当前iframe的文档对象
var body = parent.layui.layer.getChildFrame('body', index);
//将当前的iframem名存入即将要打开的layer的iframe对象中的id
body[0].id = window.name;
console.log(body);
//从iframe中的top对象是最点顶层maptest
console.log(top);
}
});
})
B.子页面代码:
if (state) {
var objs = [];
for (var i = 0; i < plandevices.length; i++) {
objs.push(plandevices[i][1]);
}
var str = JSON.stringify(objs);
var obj = {
gname: $("input[name='PlanName']").val(),
gcode: '',
state: data.field.unable=="on"?1:0,
a_type: action_type,
a_datetime: $("#time3").val(),
a_cyc: $("#time5").val(),
a_e_time: $("#time4").val(),
remark: '',
plans: str
}
if (addedit == "add") {
vm.AddPlan(obj);
}
else {
vm.UpdatePlan(obj);
}
//刷新父页弹窗数据
var id = document.body.id;
var iframe = parent[id];
iframe.vm.GetAllStone();
}