Layui iframe弹窗关闭自身的方法

作者:异步漫步

时间:2026-10-24

浏览:266

本文介绍如何在Layui框架中解决iframe弹窗关闭自身的问题。通过Java后台返回页面,前端JS调用layer.open打开弹窗,并在子页面使用parent.layer.getFrameIndex获取索引,配合parent.layer.close实现自我关闭。同时详解layer.close、layer.closeAll等API的具体用法与参数区别。

文章目录

具体实现步骤如下所示:

Layui iframe弹窗实现与关闭方法

Layui iframe弹窗实现与关闭方法

1、该弹窗展示的是一个经过后台处理后的页面内容。

1.1、弹窗功能的实现方式。

1.1.1、前端JavaScript代码部分。


 function getArticleById(articleId){
 var index = layer.open({
  type: 2,
  title: '修改管理员',
  area: ['90%', '95%'],
  shade: 0.8,
  resize: false,
  fixed: false,
  move: false,
  shadeClose: false,
  content: '${ctxPath}/article/getArticleById?articleId='+articleId
 });

 }

 

1.1.2、后端Java代码部分。


 /**
* 去到修改文章页面
* */
 @RequestMapping("/getArticleById")
 public String getArticleById(@RequestParam("articleId") Integer articleId,Model model) {
 MrtArticle mrtArticle = mrtArticleService.getArticleById(articleId);
 model.addAttribute("mrtArticle",mrtArticle); 
 return "article/articleUpdate";

 }

至此,页面弹窗即可正常显示。

关闭弹窗的核心代码

1.2、关闭该弹窗的方法。在articleUpdate.jsp文件的JS部分,使用以下两行代码即可实现弹窗自我关闭。


//当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引

parent.layer.close(index); //再执行关闭 

 layer.alert('提交成功', {
  skin: 'layui-layer-molv' //样式类名 自定义样式
  ,closeBtn: 1 // 是否显示关闭按钮
  ,anim: 1 //动画类型
  ,btn: ['确定'] //按钮
  ,icon: 6 // icon
  ,yes:function(){
  //当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭

  }
 });

layer.close与closeAll API详解

layer.close(index) - 用于关闭指定索引的层。

关于该方法的介绍似乎并无太多必要,唯一可能让人困惑的是index参数。实际上,获取index非常容易。


//当你想关闭当前页的某个层时
var index = layer.open();
var index = layer.alert();
var index = layer.load();
var index = layer.tips();
//正如你看到的,每一种弹层调用方式,都会返回一个index
layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可
//如果你想关闭最新弹出的层,直接获取layer.index即可
layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
//当你在iframe页面关闭自身时
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
layer.closeAll(type) - 关闭所有层

如果你比较懒,不想去获取index而只想直接关闭弹窗,那么closeAll方法可以帮到你。如果不指定层类型,它会销毁当前页面所有的layer层。当然,如果你只想关闭特定类型的层,可以指定类型参数。


layer.closeAll(); //疯狂模式,关闭所有层
layer.closeAll('dialog'); //关闭信息框
layer.closeAll('page'); //关闭所有页面层
layer.closeAll('iframe'); //关闭所有的iframe层
layer.closeAll('loading'); //关闭加载层
layer.closeAll('tips'); //关闭所有的tips层

以上关于解决Layui iframe弹窗关闭自身窗口的问题的全部内容就是小编分享给大家的,希望能给大家一个参考,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章