关于Iframe父页面与子页面之间的相互调用


Posted in Javascript onNovember 22, 2016

iframe元素就是文档中的文档。

window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象。但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个window对象,再为每个iframe创建额外的window对象,这些额外的window对象是原始窗口的子窗口。

contentWindow: 是指指定的iframe或者iframe所在的window对象

Demo1

父页面fu.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>父页面</title>
  </head>
  <body>
  <input type=button value="调用子页面中的函数childSay函数" onclick="callChild()">
  <iframe id="myFrame" src="zi.html"></iframe>
  <script type="text/javascript">
function parentSay() {
alert("我是父页面中的方法");
}
function callChild()
{
document.getElementById("myFrame").contentWindow.childSay();
}
  </script>
  </body>
</html>

子页面zi.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>子页面</title>
  </head>
  <body>
  <input type=button value="调用父页面中的parentSay()函数" onclick="callParent()">
  <script type="text/javascript">
function childSay()
{
alert("我是子页面的say方法");
}
function callParent() {
parent.parentSay();
}
  </script>
  </body>
</html>

Demo2

父页面iframe1.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>父页面与子页面之间的调用</title>
  </head>
  <body>
  <iframe src="http://localhost/iframe/iframe3.html" id="iframe3"></iframe>
  <iframe src="http://localhost/iframe/iframe2.html" id="iframe2"></iframe>
  <div class="iframe1">我是父页面</div>
  <script type="text/javascript">
  var iframe2=document.getElementById('iframe2');
  iframe2.onload=function(){//父页面调用子页面中的方法
    iframe2.contentWindow.b();
  };
  function test2() {
    console.log("我是父页面中的方法,在子页面中调用的");
    return iframe2;
  }
  </script>
  </body>
</html>

子页面iframe2.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>子页面</title>
  </head>
  <body>
  <div id="test">aaa</div>
  <div class="iframe2">子页面</div>
  <script type="text/javascript">
  //子页面iframe2.html调用父页面iframe1.html的函数:
   parent.test2();
   function b(){
      console.log("我是子页面iframe2");
    }
    function c() {
      console.log("iframe3页面调用iframe2页面");
    }
  </script>
  </body>
</html>

子页面iframe3.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>iframe3</title>
  </head>
  <body>
  <script type="text/javascript">
  var iframe2=parent.test2();
  iframe2.contentWindow.c();//iframe3调用iframe2中的方法
  </script>
  </body>
</html>

Demo2也实现了子页面与子页面之间相互调用。

以上就是小编为大家带来的关于Iframe父页面与子页面之间的相互调用全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
JS实现字体选色板实例代码
Nov 20 Javascript
JQuery性能优化的几点建议
May 14 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
Apr 15 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
利用Node.js制作爬取大众点评的爬虫
Sep 22 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
vue.js实现标签页切换效果
Jun 07 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
Jun 03 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
微信小程序实现点击生成随机验证码
Sep 09 Javascript
JS中BOM相关知识点总结(必看篇)
Nov 22 #Javascript
老生常谈原生JS执行环境与作用域
Nov 22 #Javascript
JS中位置与大小的获取方法
Nov 22 #Javascript
javascript中Date对象的使用总结
Nov 21 #Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 #Javascript
使用Angular.js实现简单的购物车功能
Nov 21 #Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 #Javascript
You might like
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
python 中文乱码问题深入分析
2011/03/13 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
理工科学生的自我评价
2013/12/15 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
代领报检证委托书范本
2014/10/11 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
Golang连接并操作MySQL
2022/04/14 MySQL