zoukankan      html  css  js  c++  java
  • 基于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("")
            }
        })
  • 相关阅读:
    记一次网站迁移的过程
    如何才能搜索微信群和网盘群
    2021最新车载u盘歌曲集合,每轴更新。想要拉你入群
    工具分享:目录生成器
    福利,剪映PC版来了~ 支持windos系统和苹果系统
    微信8.0来了,可以加1w人好友,微商必看!!!
    centOS7安装 redis server
    Task handler raised error: ValueError('not enough values to unpack (expected 3, got 0)')
    《More Effective C++》读书笔记(下)
    《More Effective C++》读书笔记(中)
  • 原文地址:https://www.cnblogs.com/helloNico/p/10192261.html
Copyright © 2011-2022 走看看