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 相关文章推荐
JS去除数组重复值的五种不同方法
Sep 06 Javascript
javascript静态页面传值的三种方法分享
Nov 12 Javascript
从零学JS之你需要了解的几本书
May 19 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
使用JavaScript获取URL中的参数(两种方法)
Nov 16 Javascript
微信小程序 UI布局常用技巧整理总结
Dec 05 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
Jul 08 jQuery
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
纯js实现页面返回顶部的动画(超简单)
Aug 10 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
Python探索之pLSA实现代码
2017/10/25 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python logging模块的使用总结
2019/07/09 Python
python 命令行传入参数实现解析
2019/08/30 Python
在求职信中如何凸显个人优势
2013/10/30 职场文书
小区文明倡议书
2014/05/16 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
贫困证明书范文
2015/06/16 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
十大最强岩石系宝可梦,怪颚龙实力最强,第七破坏力很强
2022/03/18 日漫
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android