首先,在使用layer.open打開的頁面內使用
var index = parent.layer.getFrameIndex(window.name);
獲取當前所打開框架的索引序號,並把此序號傳送給下一級打開的窗口頁面,那么在這個頁面上使用:
var $obj = $.currentIframe().frames['layui-layer-iframe'+index];
就可以獲取到上一級頁面的所有元素對象
例子:
打開“詳情”頁
function detail(keyValue) { layer.open({ id: 'Detail', type: 2, title: '詳情', shadeClose: true, anim: 7, isOutAnim: 2, move: false, offset: 'rb', area: ['70%', '100%'], content: '../../Manage/Detail?keyValue=' + keyValue }) }
在“詳情”頁上打開另一頁面“反饋”頁
function feedback() { var index = parent.layer.getFrameIndex(window.name); dialogOpen({ id: 'FeedbackForm', title: '反饋', width: '400px', height: '320px', url: '/Manage/FeedbackForm?index =' + index , callBack: function (iframeId) { top.frames[iframeId].AcceptClick(); } }) }
在“反饋”頁上調用“詳情”頁上的元素及各對象
//保存 function AcceptClick() { $.SaveForm({ ... success: function () { if (keyValue) { var $obj = $.currentIframe().frames['layui-layer-iframe'+index]; var nowTime = new Date(); var addTime = nowTime.Format("yyyy-MM-dd HH:mm"); if (postData["FeedbackStatus"] == 1) { if (postData["Content"] == "") postData["Content"] = "正常通過"; $.currentIframe().$("#gridTable").trigger("reloadGrid"); } var jsonStr = '{"Attachment":\"' + postData["Attachment"] + '\","Content":\"' + postData["Content"] + '\","CreateTime":\"' + addTime + '\","CreateUserName":""}'; $obj.$("#newData").val(jsonStr); $obj.$("#newData").trigger("click"); } else { $.currentIframe().$("#gridTable").trigger("reloadGrid"); } } }) }