关于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 Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
May 09 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 Javascript
微信小程序—setTimeOut定时器的问题及解决
Jul 26 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 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
PHP chmod 函数与批量修改文件目录权限
2010/05/10 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
php导入excel文件到mysql数据库的方法
2015/01/14 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
2018/09/20 jQuery
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
2019/05/15 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
zookeeper python接口实例详解
2018/01/18 Python
python样条插值的实现代码
2018/12/17 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
Exception类的常用方法
2012/06/16 面试题
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
物业管理工作方案
2014/05/10 职场文书
酒后驾车标语
2014/06/30 职场文书
2015年感恩父亲节活动策划方案
2015/05/05 职场文书
紧急迫降观后感
2015/06/15 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
vue3中的组件间通信
2021/03/31 Vue.js