Iframe 通信相信大家都接触过,或者了解过,那么双向通信呢? :p

今天发了Code Review ,有点时间就重新整理了一下,希望能对大家有所帮助。

0、效果图

1、ParentHtml

1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head runat="server">
3     <title></title>
4     <script src="Js/jquery-1.7.2.min.js" type="text/javascript"></script>
5     <script type="text/javascript">
6 function SendMessage() {7             var Msg = $("#txtParent").val();8             var Iframe = document.getElementById("iframe1");9             Iframe.contentWindow.postMessage(String(Msg), "*");10 }11     </script>
12     <script type="text/javascript">
13         var OnMessage =function (e) {14             $("#lblParent").text(e.data);15 };16 function Init() {17             //for > ie 8
18             if(window.addEventListener) {19                 window.addEventListener("message", OnMessage, false);20 }21             //for <= ie 8
22             else{23                 if(window.attachEvent) {24                     window.attachEvent("onmessage", OnMessage);25 }26                 else{27                     alert("can not init event listener.");28                     return;29 }30 }31 };32 Init();33     </script>
34 </head>
35 <body>
36     <div>
37         <p>
38             接收到的信息:<label id="lblParent"></label>
39             <br />
40             <input type="text" id="txtParent" value="parent message" />
41             <input type="button" value="Send to Child" οnclick="SendMessage()" />
42         </p>
43         <p>
44             <iframe style="height: 400px;" id="iframe1" src="ChildHtml.aspx"></iframe>
45         </p>
46     </div>
47 </body>
48 </html>

2、ChildHtml

1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head id="Head1" runat="server">
3     <title></title>
4     <script src="Js/jquery-1.7.2.min.js" type="text/javascript"></script>
5     <script type="text/javascript">
6 function SendMessage() {7             var Msg = $("#txtChild").val();8             var Parent =window.parent;9             Parent.postMessage(String(Msg), "*");10 };11         var OnMessage =function (e) {12             $("#lblChild").text(e.data);13 };14 function Init() {15             //for > ie 8
16             if(window.addEventListener) {17                 window.addEventListener("message", OnMessage, false);18 }19             //for <= ie 8
20             else{21                 if(window.attachEvent) {22                     window.attachEvent("onmessage", OnMessage);23 }24                 else{25                     alert("can not init event listener.");26                     return;27 }28 }29 };30 Init();31     </script>
32 </head>
33 <body>
34     <div>
35         <p>
36             接收到的信息:<label id="lblChild"></label>
37             <br />
38             <input type="text" id="txtChild" value="child message" />
39             <input type="button" value="Send to Parent" οnclick="SendMessage()" />
40         </p>
41     </div>
42 </body>
43 </html>

3、附上源码

Download

转载于:https://www.cnblogs.com/VincentDao/archive/2013/02/05/2892466.html

[ Front-end ] Iframe 跨域双向通信相关推荐

  1. 用P3P header解决IE下iframe跨域访问时候session丢失的问题

    用P3P header解决IE下iframe跨域访问时候session丢失的问题 整合客户的登录时,或者其他一个网站通过iframe时,特别是一个http页面,访问一个https页面时,常常会sess ...

  2. 获取子页面iframe的点击事件及iframe跨域的交互

    1.获取子页面iframe的点击事件 1.1.获取iframe var frame = document.getElementById('addrClick2'); 1.2.获取点击事件 var If ...

  3. 解决 Iframe跨域session 丢失问题

    解决 Iframe跨域session 丢失问题 参考文章: (1)解决 Iframe跨域session 丢失问题 (2)https://www.cnblogs.com/xumingxiang/arch ...

  4. js解决iframe跨域问题

    js解决iframe跨域问题 参考文章: (1)js解决iframe跨域问题 (2)https://www.cnblogs.com/qinxuhui/p/12154995.html 备忘一下.

  5. iframe跨域通信的通用解决方案-第二弹!(终极解决方案)

    一年前,我发过一篇关于跨文档通信方案的文章<iframe跨域通信的通用解决方案>,提供了一种基于创建iframe与轮询window.name的方案. 一年后,很高兴地带来彻底改造的新版本. ...

  6. 怎样获取不同域名的ifram的html,AJAX | iframe跨域的实现方法

    iframe跨域 HTML5学堂:本文当中我们介绍了跨域的基本知识,讲解到了跨域的相关种类,并讲解了解决跨域中的一种方法--如何使用iframe跨域.讲解了iframe跨域的基本原理与流程,并配以实战 ...

  7. 利用iframe跨域请求

    跨域是系统与系统之间信息交流的一种方式,为了获取另外一个地方的信息,经常会出现跨域,总结一下利用iframe跨域进行请求,网上关于跨域的信息很多,只做一下备忘 <!DOCTYPE html> ...

  8. 利用代理页面解决html iframe跨域访问网站问题

    原文:利用代理页面解决html iframe跨域访问网站问题 源代码下载地址: http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到 ...

  9. Cookie 跨域解决方案(IFrame跨域)

    IFrame跨域思路:假设有a.haorooms.com/text.html和b.haorooms.com/text.html两个页面,通过a.haorooms.com/text.html页面去修改b ...

  10. iframe 跨域处理

    iframe 跨域处理 <iframe src="demo.html" id="iframes"height="300"width=& ...

最新文章

  1. 问题集锦(21-25)
  2. javascript判断数组是否包含了指定的元素
  3. laravel auth login 重定向自定义_Laravel学习之路(一):最简单的API 认证(Passport)实践...
  4. 函数,游标与存储过程的综合应用
  5. mysql dese_MySQL 5.6-类似于DENSE_RANK的功能,无需订购
  6. MySQL 高级 —— 深入理解 InnoDB 与 MyISAM
  7. 【Kafka】Kafka IllegalArgumentException: Could not find a ‘KafkaClient‘ entry in the JAAS configuratio
  8. MongoDB副本集权限重置
  9. 第四课时之HTML 元素
  10. wordpress上传文件报错的解决方法(413 Request Entity Too Large、超过upload_max_filesize文件中定义的php.ini值)
  11. 网页另存显示不全_word另存为选项没有PDF格式怎么办?别忘了还有这招!
  12. DHCPV6 配置实验
  13. html整人js代码大全,Fool.js恶搞整人网页特效jQuery插件
  14. ceph 代码分析 读_Ceph代码分析-OSD篇
  15. 怎么快速学会计算机程序知识,零基础学电脑怎样才能学得快,自学电脑的基础知识分享...
  16. 9.2.3 将警告视为错误
  17. pytorch的使用:卷积神经网络模块
  18. 获取CPU每个核心的IDT信息
  19. (转)UltraEdit 注册机使用激活方法
  20. cat_get - 获得淘宝分类详情-API接口

热门文章

  1. 解决办法:ubuntu登录后,桌面空空如也,状态栏没了
  2. 博客V7之后,喜庆排名进入2000之内
  3. LINUX用C检查文件的大小的代码
  4. 如何检查视频画面延迟的时间
  5. 完全二叉树的节点数量
  6. day11_界面闪烁处理
  7. 未能对git remote进行身份验证_用好Git和SVN,再也不怕跑路了!
  8. react项目案例_教程28——使用 react-rewired 配置基本的环境(项目)
  9. android snackbar 底部,Android KitKat:Snackbar不在屏幕的底部
  10. API不治,混合云何以统天下?