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 相关文章推荐
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
JavaScript toFixed() 方法
Apr 15 Javascript
JS数组的赋值介绍
Mar 10 Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
javascript实现日期时间动态显示示例代码
Sep 08 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
confirm确认对话框的实现方法总结
Jun 17 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
Oct 27 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
基于Node.js的大文件分片上传示例
Jun 19 Javascript
node.js域名解析实现方法详解
Nov 05 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
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
动态表格Table类的实现
2009/08/26 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
使用pdb模块调试Python程序实例
2015/06/02 Python
python正则分析nginx的访问日志
2017/01/17 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python批量生成幻影坦克图片实例代码
2019/06/04 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python pyautogui模块实现鼠标键盘自动化方法详解
2020/02/17 Python
Python类及获取对象属性方法解析
2020/06/15 Python
城市轨道专业个人求职信范文
2013/09/23 职场文书
演讲稿开场白
2014/01/13 职场文书
公司薪酬管理制度
2014/01/31 职场文书
甘南现象心得体会
2014/09/11 职场文书
纪录片信仰观后感
2015/06/08 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python
go goroutine 怎样进行错误处理
2021/07/16 Golang