昨晚整了很晚,一直找不到方法。去官網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方法是父窗口的方法,參數是從子窗口傳過來的數據,具體方法就不寫了、
大概流程就是這樣
