iframe父子页面交互

以下的父页面与子页面交互的方法必须起一个页面服务才能使用(通过域名来访问)并且的保证父页面与子页面是在同一域名下,不然是会报错的

父页面调用子页面

获取父页面的ifram的id或calss之后可以通过contentWindow这个对象获取子页面的元素和方法.父页面调用子页面的元素和方法时,必须要等iframe加载完毕,或者在onload 方法里执行,不然是获取不到的!

contentWindow 可取得子窗口的 window 对象。

document.getElementById(‘main‘).contentWindow.document.querySelector(".warp");//获取父页面的方法
document.getElementById(‘main‘).contentWindow.childFn();//获取子页面的方法并执行

子页面调用父页面

在子页面通过window.parent.fn()可以获取并执行父页面的方法

window.parent.parentFn() 

实例:

父页面

<iframe scrolling="no" id="main" name="main" frameborder="0" src="iframe子页面1.html"></iframe>
        <script type="text/javascript">
            //根据ID获取iframe对象
            var ifr = document.getElementById(‘main‘);
            ifr.onload = function() {
                /*获取子页面的dom元素*/
                var warp=ifr.contentWindow.document.querySelector(".warp"); //获取子页面的元素
                console.log(warp);
                ifr.contentWindow.childFn()    //调用子页面的方法
            }

            function parentFn(){
                alert("我是父页面的方法")
            }
 </script> 

子页面

 <p onclick="parentFn">购物车</p>
    <script>
        var box=document.querySelector("p");
        box.onclick=function(){
            window.parent.parentFn()//点击时调用父页面的方法
        }       

        function childFn(){
            console.log("我是子页面的方法")
        }
    </script>

 

原文地址:https://www.cnblogs.com/zimengxiyu/p/12181207.html

时间: 2024-08-08 21:01:01

iframe父子页面交互的相关文章

【转】JavaScript实际应用:父子页面交互

转自:http://blog.csdn.net/xinyueyuli/article/details/509893 最近项目开发中需要子窗口和父窗口交互的内容,基本上无非就是把子窗口的信息传递给父窗口,并且关闭自己等等,或者是父窗口把自己的信息传递给子窗口等等. 1.父窗口传递信息给子窗口 看代码实例: <script language=javascript> function outPut() { //获取父窗口的文本信息赋值给text var text = document.abc.tex

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 与父页面交互操作

父页面 Father.htm 源码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>

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父子页面之间相互调用元素和函数

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父子页面传值的方法。

之前项目中用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 父子页面方法调用

在写代码的时候经常会用到将一个网页嵌入到另一个网页中,w3c也规定了一个标签<iframe>,这个标签本身就支持跨域,而且所有的浏览器都支持 iframe具有以下属性: 1.frameborder 设为1代表显示周围边框,设置为0不显示周围边框 2.height 设置iframe的高度 3.width 设置iframe的宽度 4.longdesc 属性值为URL 规定一个页面,该页面包含了有关 iframe 的较长描述 5.marginheight 定义 iframe 的顶部和底部的边距 6.

iframe 父子页面取值

使用jquery操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe id="mainiframe..</iframe>leftiframe中jQuery改变mainiframe的src代码: $("#mainframe",parent.document.body).attr("src","http://www