昨晚整了很晚,一直找不到方法。去官网api看了好久,又在网上搜了很久 始终找不到答案。今天自己终于找到了方法。
难点:因为 确认和取消按钮都是在父窗 调用js生成的按钮。只能从父窗回调的时候去去数据并关闭子窗口。并不是子窗口自己关闭并把数据传到父窗。而网上给出的很多答案都是子窗口自己关闭并传数据到父窗的方法。
【贴出我自己的代码,大概实现了流程。具体自己根据情况修改】
我的代码功能是 子窗口要传递数组给父窗,具体复杂的数据格式(如json等)类似
1.子窗口代码
var urls;
function getUrls()
{
return urls;
}
将变量的值用方法传出来
2.父窗的代码
function OpenWindow()
{
top.layer.open({
id: "UploadPic",
title: "图片上传",
content: "/Actor/UploadPic",
area: ["800px", "580px"],
shade: 0.3,
type: 2,
fix: false,
btn: ['确认', '关闭'],
btnclass: ['btn btn-primary', 'btn btn-danger'],
yes: function (index, layero) {
var tem = $(layero).find("iframe")[0].contentWindow.getUrls();
PicCallBack(tem);
parent.layer.close(index);
}, cancel: function () {
return true;
}
});
}
调子窗口的方法 取到数据,并关闭子窗口
3.
PicCallBack方法是父窗口的方法,参数是从子窗口传过来的数据,具体方法就不写了、
大概流程就是这样