layer的iframe弹框中父子元素的传值

项目中,左侧导航树,右侧是 iframe 嵌套的页面,在右侧页面中又有layer弹框,可以说是有两层 iframe 框架。

所以查询网上的parent什么的方法都不能用。自己摸索的下面的方法:

1、父页面取子页面的值:

 top.moreFunLayer = top.layer.open({
                type: 2,
                title: "常用功能",
                area: ["600pt", "150pt"],
                content: './workbench/comUseFunc_add.html',
                success: function(layero, index) {
                    // console.log(index);
                    console.log(layero);
                    console.log(layero[0]);
                    console.log(typeof layero[0]);
                    console.log( $(layero[0]).find("#layui-layer-iframe"+index).contents().find("#btn").val() );
                    console.log(layero[0] instanceof jQuery);
                    console.log(layero[0] instanceof HTMLElement);
                }
            });

2、子页面取父页面的值

 $("#btn").click(()=>{
            console.log("子页面button触发");
            $(parent.document.getElementsByClassName("J_iframe")[0]).attr("src");
            console.log( $(parent.document.getElementsByClassName("J_iframe")[0]).contents().find("#div").html() );
        })

总结:

1、子页面要是想取父页面中的js数据,可以在页面中设置一个display为none的div元素或者隐藏的输入框。然后把数据赋值给看不见的元素,然后子页面取父页面的元素值。

2、取元素值的时候,中间间隔的有 iframe 元素的话,必须先定位 iframe 元素,然后取 iframe 元素内容,再定位元素。

转载于:https://www.cnblogs.com/smile-fanyin/p/10942918.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值