基于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

时间: 2024-08-01 09:25:05

基于iframe父子页面传值的方法。的相关文章

JS iframe父子页面元素调用方法 window parent top 解释

父窗口调用子窗口 var hasMore = parent.document.getElementByIdx_x_x_x("hasMore").value;子窗口调用父窗口document.frames["ifrmBoxFrame"].me.preLoadBoxGrid(); window.frames["iframe_ID"].document.getElementByIdx_x_x_x("iframe_document_object

iframe父子页面操作-比较好用的两个方法-window.parent/oframe.contentWindow.document

发现比较好用的iframe父子页面操作方法,记录一下 1.父页面 test.html <iframe id="iframe1" src="iframe.html"></iframe> 获取iframe    var oframe = document.getElementById("main") 获取子页面  var child =  oframe.contentWindow.document 获取子页面元素      v

用open或showModalDialog实现父子页面传值

1 open 如果实现open窗口父子页面传值,在父页面声明一个函数,函数要求要有参数,用来接收子页面传过来的值,子页面通过调用“window.opener.父页面函数”来实现将值传回父页面. 父页面: //open窗口 function chooseDept() { window.open("listDept.html", "", "width=150px,height=400px"); } function receiveValue(para

ASP.NET页面传值的方法

ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方式,估计往往很难全面.一. 使用QueryString变量 QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法. Response.Redirect( "target.as

iframe父子页面通信

一.同域下父子页面的通信 1.父页面调用子iframe页面 (1)通过iframe的Id获取子页面的dom,然后通过内置属性contentWindow取得子窗口的window对象,此方法兼容各个浏览器 document.getElementById('iframe_Id').contentWindow // contentWindow 不能省略 (2)通过iframe的name直接获取子窗口的window对象 iframe_Name.window    //window可以省略 (3)通过win

webform 页面传值的方法总结

ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer. 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于

JQuery调用iframe父页面元素与方法

JQuery操作iframe父页面与子页面的元素与方法 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面中定义的方法和变量: parent.method parent.value 第四.

js如何判断是否在iframe中/JQuery调用iframe父页面元素与方法

//方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert('在iframe中'); } //方式二 if (window.frames.length != parent.frames.length) { alert('在iframe中'); } //方式三 if (self != top) { alert('在iframe中'); } 第一.在iframe中查找父页面元素的

iframe父子页面之间相互调用元素和函数

1 <!doctype html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <meta name="Keywords" content=""> 6 <meta name="Description" con