layui框架中layer父子页面交互的方法分析


Posted in Javascript onNovember 15, 2017

本文实例讲述了layui框架中layer父子页面交互的方法。分享给大家供大家参考,具体如下:

layer是一款近年来备受青睐的web弹层组件,官网地址是:http://layer.layui.com/

可以从官网上下载最新版本。

还可点击此处本站下载

当layer以iframe层的方式弹出新的窗口(子页面),如何在子页面中访问父页面的元素和函数。

1、访问父页面元素值

var parentId=parent.$("#id").val();//访问父页面元素值

2、访问父页面方法

var parentMethodValue=parent.getMethodValue();//访问父页面方法

3、如何关闭弹出的子页面窗口

var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
parent.layer.close(index);//关闭弹出的子页面窗口

4、如何从子页面执行刷新父页面操作

parent.location.reload(); // 父页面刷新

附:layer弹出多个iframe找到父页面的方法

父页面:

function aa(){
    var index = parent.layer.getFrameIndex(window.name);
    var iframeName = 'layui-layer-iframe'+index;
    openDialog1('选择XXX', '${ctx}/*****,'800px', '500px',iframeName);
}
function openDialog1(title,url,width,height,target){
    top.layer.open({
      type: 2,
      area: [width, height],
      title: title,
      maxmin: true, //开启最大化最小化按钮
      content: url ,
      btn: ['确定', '关闭'],
      yes: function(index, layero){
         var body = top.layer.getChildFrame('body', index);
         var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
         var inputForm = body.find('#inputForm');
         var top_iframe;
         if(target){
           top_iframe = target;//如果指定了iframe,则在改frame中跳转
         }else{
           top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
         }
         inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
         if(iframeWin.contentWindow.doSubmit(top_iframe) ){
           top.layer.close(index);//关闭对话框。
           top.window[iframeName].frames.location.reload();//刷新父亲
         }
     },
     cancel: function(index){
      }
  });
}
//子页面回调方法
function addRecord(name,chainName){
  alert(name);
}

子页面

function doSubmit(iframeName) {
    var sel=$("tbody tr td input.i-checks:checked");
    var size = sel.size();
    if(size==0){
      top.layer.alert('请至少选择一条数据!', {icon: 0, title:'警告'});
      return false;
    }else{
      for(var i=0;i<size;i++){
        top.window[iframeName].addRecord(sel[i].name,sel[i].value);
      }
      return true;
    }
}

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

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

Javascript 相关文章推荐
JQuery select标签操作代码段
May 16 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
Jun 23 Javascript
Node.js中npm常用命令大全
Jun 09 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
HTML的select控件美化
Mar 27 Javascript
MUI实现上拉加载和下拉刷新效果
Jun 30 Javascript
基于jQuery的$.getScript方法去加载javaScript文档解析
Nov 08 jQuery
Vue DevTools调试工具的使用
Dec 05 Javascript
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
怎么理解wx.navigateTo的events参数使用详情
May 18 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
Jan 29 Javascript
layer实现关闭弹出层刷新父界面功能详解
Nov 15 #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
You might like
php读取数据库信息的几种方法
2008/05/24 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
详解用vue.js和laravel实现微信支付
2017/06/23 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
Python读写Redis数据库操作示例
2014/03/18 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python学生管理系统
2019/01/30 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
如何理解Python中的变量
2020/06/01 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
护士自我评价
2014/02/01 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
就业协议书怎么填
2014/09/15 职场文书
收入证明申请书
2015/06/12 职场文书
导游词之无锡梅园
2019/11/28 职场文书