关于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 相关文章推荐
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
jQuery原理系列-常用Dom操作详解
Jun 07 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
使用JSON格式提交数据到服务端的实例代码
Apr 01 Javascript
浅谈ng-zorro使用心得
Dec 03 Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
js实现for循环跳过undefined值示例
Jul 02 Javascript
vue实现节点增删改功能
Sep 26 Javascript
原生js中运算符及流程控制示例详解
Jan 05 Javascript
Vue仿Bibibili首页的问题
Jan 21 Vue.js
vue-router中hash模式与history模式的区别
Jun 23 Vue.js
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
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php常用字符串处理函数实例分析
2014/11/22 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
Python使用functools实现注解同步方法
2018/02/06 Python
分分钟入门python语言
2018/03/20 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
在pycharm 中添加运行参数的操作方法
2019/01/19 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
Pycharm github配置实现过程图解
2020/10/13 Python
五种Python转义表示法
2020/11/27 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
canvas像素画板的实现代码
2018/11/21 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
PHP开发的一般流程
2013/08/13 面试题
如何利用cmp命令比较文件
2016/04/11 面试题
初中班级口号
2014/06/09 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
关于美容院的活动方案
2014/08/14 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2014年秘书工作总结
2014/11/25 职场文书
篮球赛新闻稿
2015/07/17 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
CSS完成视差滚动效果
2021/04/27 HTML / CSS