layer模态框之间相互操作

Posted xmcui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了layer模态框之间相互操作相关的知识,希望对你有一定的参考价值。

场景是这样的,资源列表页面点击编辑,弹出编辑模态框,编辑模态框中点击图标区域,在资源列表中再弹出一个新的模态框,用于选择图标,点击任意一个图标后,修改编辑页面的图标和文字;

技术图片

技术图片

技术图片

解决方案

  1. 在父页面中配置第一个模态框的id属性
    let index = layui.layer.open({ area: [‘750px‘, ‘450px‘], maxmin: true, type: 2, title: ‘修改资源‘, id: ‘editRoot‘, content: ‘/resource/edit/‘ + resourceId });
  2. 在第二个模态框js方法中获取第一个模态框的id

下面的editRoot就是上面设置的id,需要注意的是layer组件会进行自己的封装,指定的id不是iframe的id,是外面div的id

```
let id =parent.window.$('#editRoot>iframe:first').attr('id');//获得iframeid 格式是 "layui-layer-iframe5" 后面的数字    就是index
```
  1. 根据id获得iframe的选择器对象

    let iframe = parent.$('#'+id).contents();//获得iframe的选择器对象
  2. 使用find()继续使用选择器,选择下级dom进行后续操作
    iframe.find(‘#icon‘).val(iconName); iframe.find(‘#iconImg‘).attr(‘src‘,imgSrc);

以上是关于layer模态框之间相互操作的主要内容,如果未能解决你的问题,请参考以下文章

关于自定义模态框的实现

layer弹出层详解

layer弹出层里面的按钮怎么关闭当前弹出框

使用layer 弹出对话框 子父页面相互参数传递 父页面获取子页面参数实例

java+selenium3模态框处理

我该如何做模态对话框片段(代码在我关闭之前不会执行)