鱼塘码农

菜鸟学习记录
鱼海无涯

layer.open弹窗调用父页面的方法

问题背景:在一个后台管理系统页面点击上传文件,弹出一个layer.open弹窗,在弹窗中选择文件上传,当问价内容校验出错时将错误信息用layer.alert弹窗报出来,这就是一个孙弹窗,alert弹窗弹出时只能在open内部,报错内容可能很多,而layer.open弹窗较小,导致信息显示不全。
我想的解决方案是将alert弹窗放到父页面中,这样弹出的窗口跟open是平级的,可以显示在open之上,最终也实现了出来。

父页面:

//父页面中的layer.open代码不需要改动
var index = layer.open({
    type : 2,
    title : '导入核酸检测计划',
    content : $base + "/page/chkImport",
    scrollbar : false,
    area : [ '450px', '350px' ], // 宽高
    });

/**
     *父页面新增的方法
     * 文件上传弹窗报错用 供上传窗口用
     * @param str 报错内容
     */
    function alertErr(str){
        layer.alert(str,{
            skin: 'layui-layer-molv', //样式类名,
            closeBtn: 0,
            area: ['500px', '400px'],
            zIndex: layer.zIndex, //让弹窗在最上面 此处可能没用到
            success: function(layero){
                layer.setTop(layero); //让弹窗在最上面 此处可能没用到
            }
        }, function(){
            layer.closeAll(); //点击确认后关闭所有弹窗,执行查询
            getRechargeTable(balanceUrl)
        });
    }

layer.open页面
放在接口报错,data.conten是报错内容

var evalStr = "parent.alertErr('"+data.content+"')";  //调用父页面的报错方法,将报错信息传递过去
eval(evalStr); //去调用父页面的方法
文章内容可能来自网络,纯为学习使用,若有侵权,请联系我删除 | 当前页面:鱼塘码农 » layer.open弹窗调用父页面的方法

评论