基于iframe父子页面传值的方法。

之前项目中用layer.js作为弹窗的框架,发现layer.js中大部分弹窗都是通过iframe模拟的。为此,在项目中遇到了不少坑。印象最深的就是父子页面传值的问题。后面经过一段时间的研究。总结出以下几种方法:

一、在子页面的js中直接使用parent获取父级页面中的对象方法。如:

$(document).ready(function(){
        $("#people_add_cardActiveTime").text(laydate.now(0, 'YYYY-MM-DD 00:00:00'));
        $("#people_add_cardEndTime").text(laydate.now(0, 'YYYY-MM-DD hh:mm:ss'));
        $.selectTime('people_add_cardActiveTime');
        $.selectTime('people_add_cardEndTime');
        if(parent.people_manager.editStus ==1){
            var starTime = parent.people_manager.starTime;
            var endTime = parent.people_manager.endTime;
            $("#people_add_cardActiveTime").val(starTime)
            $("#people_add_cardEndTime").val(endTime)
        }else{
            $("#people_add_cardActiveTime").val("")
            $("#people_add_cardEndTime").val("")
        }
})
//要注意的是,在parent过去之后,为了方便,我们一般是获取其全局对象下的方法或对象。

二、通过地址传入参数,该方法稍显复杂;首先要在父页面将参数添加到子页面链接后面,然后在子页面接收的时候,获取到页面链接解析后面传入的参数。

三、直接在父页面通过find方法查找子页面元素,然后赋值:

index = layer.open({
        id: "pop_div_fingerEdit",
        title: "指纹信息修改",
        type: 2,
        area: ['400px', '300px'],
        content: "./cardManager/fingerEdit.html",
        success: function (layero, index) {
            var body = layer.getChildFrame("#pop_div_fingerEdit", index);
            $peopleid = $peopleid? $peopleid : "无"
            body.contents().find("#peopleID").val($peopleid);
            body.contents().find("#fingerID").val($id);
            var obj = body.contents().find("#stus").find("option")//.attr("selected","selected");
            $(obj).each(function(i,v){
                if($($(obj)[i]).attr("value")==stu){
                    $(this).attr("selected","selected")
                }
            })
        }
    })

 

$(document).ready(function(){
        $("#people_add_cardActiveTime").text(laydate.now(0, 'YYYY-MM-DD 00:00:00'));
        $("#people_add_cardEndTime").text(laydate.now(0, 'YYYY-MM-DD hh:mm:ss'));
        $.selectTime('people_add_cardActiveTime');
        $.selectTime('people_add_cardEndTime');
        if(parent.people_manager.editStus ==1){
            var starTime = parent.people_manager.starTime;
            var endTime = parent.people_manager.endTime;
            $("#people_add_cardActiveTime").val(starTime)
            $("#people_add_cardEndTime").val(endTime)
        }else{
            $("#people_add_cardActiveTime").val("")
            $("#people_add_cardEndTime").val("")
        }
    })

转载于:https://www.cnblogs.com/helloNico/p/10192261.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值