javascript父子页面通讯实例详解


Posted in Javascript onJuly 17, 2015

本文实例讲述了javascript父子页面通讯的实现方法。分享给大家供大家参考。具体分析如下:

如果一个domain为 www.abc.com的页面内部包含一个name属性值为childFrame的iframe,并且这个iframe的domain为 static.abc.com。那么可以通过设置父页面的domain为abc.com,子页面的domain也为abc.com,然后实现父子页面通讯(我这里有点混淆父子页面和跨域的概念。

不采用上面的方法也是可以实现父子页面相互访问的。
方法是:在父页面用window.frames[0]或者window.frames["childFrame"],返回的是一个Window对象,然后就可以通过:

var childWindow = window.frames[0];
// 或者 window.frames["childFrame"] 或者直接childFrame 或者childFrame.window 
var childDoc = childWindow.contentDocument || childWindow.document;

利用childWindow可以访问执行子页面定义的函数,利用childDoc可以访问子页面的DOM节点。

而子页面要访问父页面,可以通过parent(Window对象),如果一个页面已经是顶级页面那么parent==self将返回true:

if(parent != self) {
// 当前页面有父页面 
  // 调用父页面的函数 
  parent.parentFunc(); 
  var parentDoc = parent.contentDocument || parent.document; 
  // 访问父页面的DOM节点 
}

www.abc.com父页面:

document.domain = 'abc.com';
var ifr = document.createElement('iframe');
ifr.src = 'http://static.abc.com/';
ifr.style.display = 'none';
document.body.appendChild(ifr);
ifr.onload = function(){
  var doc = ifr.contentDocument || ifr.contentWindow.document;
  // 在这里操纵子页面
  alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);
};

www.static.abc.com子页面:

document.domain = 'abc.com';

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
Jun 04 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
javascript中call apply 与 bind方法详解
Mar 10 Javascript
zTree插件下拉树使用入门教程
Apr 11 Javascript
详解KOA2如何手写中间件(装饰器模式)
Oct 11 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
May 22 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
Nov 12 Javascript
微信小程序实现翻牌抽奖动画
Sep 21 Javascript
js面向对象编程OOP及函数式编程FP区别
Jul 07 Javascript
javascript实现的闭包简单实例
Jul 17 #Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 #Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 #Javascript
JavaScript之AOP编程实例
Jul 17 #Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 #Javascript
javascript封装的sqlite操作类实例
Jul 17 #Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 #Javascript
You might like
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
js实现图片懒加载效果
2017/07/17 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
js实现上传按钮并显示缩略图小轮子
2020/05/04 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
pycharm安装和首次使用教程
2018/08/27 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
基于HTML5的WebSocket的实例代码
2018/08/15 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
促销活动计划书
2014/05/02 职场文书
导游词开场白
2015/01/31 职场文书
十七岁的单车观后感
2015/06/12 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技