关于使用iframe的父子页面进行简单的相互传值

当一个页面使用了iframe作为嵌套时,如何想要将父页面的数据传给iframe子页面,那iframe所指向的呢个子页面是怎么获取呢,又或者子页面的数据要给父页面使用,那么父页面又如何获取子页面的数据呢?下面根据这种情况作了一个简单的demo案例:

父页面是parentPage.html,子页面是childPage.html。

1、情况一:父页面获取子页面传入的数据(子页面给父页面传值)

父页面:

//获取子页面传入的数据
 function GetChildValue(obj){
   document.getElementById(‘texts‘).innerText = obj;
 }

子页面:

//给父页面传数据
var txt = ‘我是子界面主动传值给父界面的数值‘;
parent.GetChildValue(txt); //GetValue是父界面的Js 方法

2、情况二:子页面获取父页面的数据(父页面给子页面传值)

父页面:

//给子页面传入数据
function toChildValue(){
    var txt = ‘这是父页面给子页面的数据‘;
    return txt;
}

子页面:

//获取父页面传来的数据
var getParentVule = window.parent.toChildValue();
console.log(getParentVule)

具体传值的数据根据自己的项目要求修改,下面放上两个页面的完整代码:

父页面parentPage.htm

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>父页面</title>
        <style type="text/css">
            .box{
                width: 600px;
                height: 400px;
                margin: 10px auto;
            }
            h3{
                font-size: 16px;
            }
            .cont{
                width: 100%;
            }
            .cont h4{
                font-size: 14px;
            }
            .cont #texts{
                width: 100%;
                line-height: 22px;
                font-size: 13px;
                color: #2E2D3C;
            }

            iframe{
                /*只是隐藏,但任然保留DOM结构*/
                visibility: hidden;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <h3>这是父页面</h3>
            <div class="cont">
                <h4>这是从子页面传入的数据:</h4>
                <div id="texts"></div>
                <iframe src="childPage.html" width="1px" height="1px" class="myIframe" name="myIframe"></iframe>
            </div>
        </div>

        <script type="text/javascript">
            //获取子页面传入的数据
            function GetChildValue(obj){
                document.getElementById(‘texts‘).innerText = obj;
            }

            //给子页面传入数据
            function toChildValue(){
                var txt = ‘这是父页面给子页面的数据‘;
                return txt;
            }
        </script>
    </body>
</html>

 子页面childPage.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>子页面</title>
        <style type="text/css">
            .box{
                width: 600px;
                height: 400px;
                margin: 10px auto;
            }
            h3{
                font-size: 16px;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <h3>这是子页面</h3>
        </div>

        <script type="text/javascript">
            //给父页面传数据
            var txt = ‘我是子界面主动传值给父界面的数值‘;
            parent.GetChildValue(txt); //GetValue是父界面的Js 方法

            //获取父页面传来的数据
            var getParentVule = window.parent.toChildValue();
            console.log(getParentVule)

        </script>
    </body>
</html>

原文地址:https://www.cnblogs.com/zhongxiaoyou/p/11344939.html

时间: 2024-08-01 11:04:24

关于使用iframe的父子页面进行简单的相互传值的相关文章

六)iframe 及父子页面之间获取元素、方法调用

http://www.w3school.com.cn/tags/tag_iframe.asp father.html <!DOCTYPE html> <html> <head> <script type="text/javascript"> function ff(msg) { alert(msg); } function test() { // 只能通过iframe名称获取子页面,不能通过id var div = window.fram

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

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

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

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

之前项目中用layer.js作为弹窗的框架,发现layer.js中大部分弹窗都是通过iframe模拟的.为此,在项目中遇到了不少坑.印象最深的就是父子页面传值的问题.后面经过一段时间的研究.总结出以下几种方法: 一.在子页面的js中直接使用parent获取父级页面中的对象方法.如: $(document).ready(function(){ $("#people_add_cardActiveTime").text(laydate.now(0, 'YYYY-MM-DD 00:00:00'

iframe父子页面通讯

由于公司的service后台,是前端搭的架子,里面各个tab菜单栏都是不同的工程,通过iframe来嵌套,在业务越来越复杂的情况下,总是避免不了iframe之间的通讯, 下面是两种iframe之间的通讯: 1.父子iframe通过监听来实现 在iframe的子页面里使用postMessage向父级页面传参: window.parent.postMessage({type: "closeIbooking", fromSource: "turnoffIbooking"}

父子页面之间元素相互操作(iframe子页面)

js/jquery获取iframe子页面中元素的方法: 一.使用window.frames["iframe的ID"]获取元素 window.onload = function() { var oIframe = window.frames["oIframe"].document.getElementById("getFrame"); console.log(oIframe); } 注意:此处一定要加上window.onload或者DOMConte

iframe中涉及父子页面跨域问题

什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制.所谓同源是指相同的域名.协议和端口,只要其中一项不同就为跨域. 举几个例子: http://a.123.com/index.html和http://a.123.com/index.js非跨域,它们有相同的域名,协议和端口. http://a.123.com/index.html和http://b.123.com/index.js跨域,相同的端口.协议,但是域名不同(a.123.com和b

【JavsScript】父子页面之间跨域通信的方法

由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇“跨域,不再纠结” 开始照着尝试时还是有些不够明白的地方,深入了解之后,这里给大家补充一点更具体的做法. 先来看看哪些情况下才存在跨域的问题: 其中编号6.7两种情况同属于主域名相同的情况,可以设置domain来解决问题,今天就不讨论这种情况了. 对于其他跨域通信的问题,我想又可以分成两类: 其一(第一种情况)是a.com下面的a.