当前位置:

用layer的iframe层提交表单后,关闭当前的iframe层

蓝飞鱼 2023-12-21 192 0

今天做了个地图点击地址弹出iframe表单,提交后没有关闭当前弹出的iframe,使用下面的代码parent.layer.close(index);可以实现。

微信截图_20231221122239.jpg

$.ajax({
                type: "POST",
                url: "/app/userinfo/uploadimg1",
                data:form,
                datatype:'json',
                processData:false,
                contentType:false,
                success: function(data) {
                	console.log(data)
                	var ResData=$.parseJSON(data);
	            	var Jcode=ResData.code;
                	if(Jcode==0){
                		layer.msg('图片上传失败', {icon: 2});
                		layer.closeAll(); //疯狂模式,关闭所有层
                	}else if(Jcode==1){
                		layer.msg('图片上传成功', {icon: 1});
                		var index = parent.layer.getFrameIndex(window.name);  
						setTimeout(function(){
							parent.layer.close(index);//关闭弹出层
							parent.location.reload();//更新父级页面(提示:如果需要跳转到其它页面见下文)
						}, 2000);
						
                	}
                    
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    layer.msg('图片上传失败', {icon: 2});
                    layer.closeAll(); //疯狂模式,关闭所有层
                    return false;
                }
            });

如果是在使用iframe的后台使用这个方法会失效,查看console提示Cannot read properties of undefined (reading 'getFrameIndex')

可以简单粗暴的改进如下:

layer.closeAll();
window.location.reload();


发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~