layer实现关闭弹出层刷新父界面功能详解


Posted in Javascript onNovember 15, 2017

本文实例讲述了layer实现关闭弹出层刷新父界面功能。分享给大家供大家参考,具体如下:

layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验。

最近一个项目采用的是hui前端框架,他的弹出层就是用的layer插件,对于弹出层,有一个操作体验大家都知道,就是关闭弹出层,需要刷新父页面。开始写的时候,我陷入了自己的误区,在弹出层处理成功之后,我调用的是:

var index = parent.layer.getFrameIndex(window.name);
parent.location.href=url;
parent.layer.close(index);

这个地方是这样写也没错,但是如果这么写,它就只能被一个地方调用了,如果有多个地方调用的话,它不能返回原地址,而是重定向到新的url地址上去了。而刚好,在我的项目中间,某一个弹出层被两个地方调用了,所以很明显这种方案就不合适了,需要优化。百度了一下,找到如下两种优化方案:

方案一:

在layer弹出层中调用父界面重新加载函数

window.parent.location.reload();
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);

方案二:

调用layer插件的end回调方法:

end - 层销毁后触发的回调

类型:Function,默认:null

无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数。

父窗口打开layer弹出框时,添加end回调

function openLayer() {
  //iframe层
    parent.layer.open({
      type: 2,
      title: '修改',
      shadeClose: false, //点击遮罩关闭
      shade: 0.8,
      area: ['30%', '45%'],
      maxmin: true,
      closeBtn: 1,
      content: [url, 'yes'], //iframe的url,yes是否有滚动条
      end: function () {
        location.reload();
      }
});

layer弹出框处理完成之后,就不需要调用其他刷新操作函数了,直接关闭就行了

var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);

相比较而言,第一种方案会更佳,因为在操作逻辑上,手动关闭弹出框,应该不触发刷新操作,只有当弹出框的处理逻辑执行成功后,调用函数关闭弹出框才触发父界面刷新操作,基于这个逻辑,应该选择方案一。方案二,不管怎样都会刷新页面,实际上无端的增加了服务器的处理压力。

方案二:可以解决子页面处理后的结果发送给子页面的父页面的问题。

对于layer.js出现回调关闭父类的弹出层时,之前的表单的submit失效的问题:

如何解决:网上有很多,有的是转为ajax的请求,在数据传输完再关闭父类的弹出层:

下面是关闭父弹出层的办法:

var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
parent.layer.close(index); // 关闭layer

采用ajax这样可以,但是我做的是支付,要弹出页面才能支付,不能转换为ajax,怎么帮?后面我老大说:“你就不能晚点执行关闭吗”?这是一个想法试了一下就好了。

附上代码:

$("#myForm").submit();
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
setTimeout(function () {
  parent.layer.close(index); // 关闭layer
},500);

我还需要在关闭父类窗口后再打开一个窗口,则怎么解决,后面发现layer.js留有一个好的方式,那就是调用父窗口的方法,这个不受子窗口的影响,通过:parent.父类方法名(参数)这样就可以了,在父窗口中再调用layer.js的弹出就好了。

另:layui完整源码可点击此处本站下载

希望本文所述对大家基于layui框架的程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
Aug 06 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
jscript读写二进制文件的方法
Apr 22 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
在JavaScript中对HTML进行反转义详解
May 18 Javascript
javascript基本语法
May 31 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 Javascript
jQuery中layer分页器的使用
Mar 13 Javascript
node.js实现简单的压缩/解压缩功能示例
Nov 05 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
解决js中的setInterval清空定时器不管用问题
Nov 17 Javascript
layui.js实现的表单验证功能示例
Nov 15 #Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 #Javascript
基于jQuery实现定位导航位置效果
Nov 15 #jQuery
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 #Javascript
vuejs实现本地数据的筛选分页功能思路详解
Nov 15 #Javascript
Js判断H5上下滑动方向及滑动到顶部和底部判断的示例代码
Nov 15 #Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 #Javascript
You might like
常用星际术语索引(新手指南)
2020/03/04 星际争霸
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
JavaScript的Vue.js库入门学习教程
2016/05/23 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
详解 Python 读写XML文件的实例
2017/08/02 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
python实现泊松图像融合
2018/07/26 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
python构建基础的爬虫教学
2018/12/23 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
绝对经典成功的大学生推荐信
2013/11/08 职场文书
培训演讲稿范文
2014/01/12 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
学生操行评语大全
2014/04/24 职场文书
应届大学生自荐书
2014/06/17 职场文书
小学亲子活动总结
2014/07/01 职场文书
中学清明节活动总结
2014/07/04 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
失职检讨书大全
2015/01/26 职场文书
面试通知邮件
2015/04/20 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python