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 入门基础学习
Mar 10 Javascript
jquery 倒计时效果实现秒杀思路
Sep 11 Javascript
jquery调取json数据实现省市级联的方法
Jan 29 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
第四章之BootStrap表单与图片
Apr 25 Javascript
js获取当前时间(昨天、今天、明天)
Nov 23 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
js实现图片加载淡入淡出效果
Apr 07 Javascript
vue.js单文件组件中非父子组件的传值实例
Sep 13 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
node.js中path路径模块的使用方法实例分析
Feb 13 Javascript
vue-i18n实现中英文切换的方法
Jul 06 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
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
php中 $$str 中 "$$" 的详解
2015/07/06 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP中类的自动加载的方法
2017/03/17 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
2017/12/25 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
通过JAVAScript实现页面自适应
2007/01/19 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
python实现折半查找和归并排序算法
2017/04/14 Python
对python 调用类属性的方法详解
2019/07/02 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
韩国保养品、日本药妆购物网:小三美日
2018/12/30 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
java程序员面试交流
2012/11/29 面试题
外贸英语专业求职信范文
2013/12/25 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
见习报告格式要求
2014/11/04 职场文书
新员工考核评语
2014/12/31 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python