【layui】layer弹出层嵌套调用问题

本文详细描述了一次调用过程中,如何通过Layer组件实现前后端交互,用户在确认保存打印信息后,触发后续打印页面的操作流程。涉及JavaScript的iframe通信和事件处理,展示了在前端开发中处理异步任务的技巧。
//首次调用
layer.open({
                        type: 2,
                        title: '打印',
                        content: '/Account/AddPrintInfo?cardId=' + data.Base_CardId,
                        area: ['90%', '30%'],
                        success: function (layero, index) {
                        },
                        end: function () {
                        },
                        btn: ['确定','关闭']
                        , yes: function (index, layero) {
                            var thisIndex = index;
                            layer.confirm('确定保存么', { icon: 3, title: '提示' }, function (index) {
                                var body = layer.getChildFrame('body', index);
    
                                var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();]
                                if (iframeWin.AddPrintInfoAction()) {
                                    //关闭confirm
                                    layer.close(index);
                                    setTimeout(function () {
                                        //关闭layer
                                        layer.close(thisIndex);
                                        //当弹出的第一个页面完成操作后判断结果,如果结果为真则关闭之前弹出的内容,弹出新的内容页(第二次调用)
                                        layer.open({
                                            type: 2,
                                            title: '打印',
                                            content: '/Account/AddPrintInfoPage?cardId=' + data.Base_CardId,
                                            area: ['98%', '98%'],
                                            success: function (layero, index) {
                                            },
                                            end: function () {
                                            },
                                            btn: ['打印']
                                            , btn1: function (index, layero) {
                                                
                                                var body = layer.getChildFrame('body', index);
                                                console.log("layero", layero);
                                                
                                                //此处在回调中获得的layero,为当前弹出层的内容,通过该内容获取iframe标签信息,与单层弹出相同    
                                                var iframeWin = window[layero.find('iframe')[0]['name']];
                                                console.log("iframeWin", iframeWin);
                                                iframeWin.printPage();
                                            }
                                        });
                                    }, 2 * 1100);

                                }
                                else {
                                    layer.close(index);
                                    return false;
                                }
                            });
                        }
                        
                    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值