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 模拟雅虎首页的点击对话框效果
Apr 11 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
jQuery中get()方法用法实例
Dec 27 Javascript
JavaScript闭包详解
Feb 02 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
Node.js实现JS文件合并小工具
Feb 02 Javascript
微信小程序进行微信支付的步骤昂述
Dec 01 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
Jul 13 Javascript
详解微信小程序开发(项目从零开始)
Jun 06 Javascript
Vue多环境代理配置方法思路详解
Jun 21 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适配器模式(Adapter)
2014/11/25 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
js常见遍历操作小结
2019/06/06 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
vue实现登录功能
2020/12/31 Vue.js
Python判断操作系统类型代码分享
2014/11/22 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
python中的随机函数小结
2018/01/27 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
软件测试有哪些?什么是配置项?
2012/02/12 面试题
九月份红领巾广播稿
2014/01/22 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
党员演讲稿
2014/09/04 职场文书
党支部承诺书
2015/01/20 职场文书
亲情作文之母爱
2019/09/25 职场文书
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL