跨文档消息传递----postMessage()
HTML5 规范中,提出了XDM,又称为 跨文档消息传递,其核心是 postMessage()方法,进行跨域和跨文档消息传递,示例如下:
<div class="CrossDocumentMessage"> Cross Document Message , core---->postMessage()</div> <iframe id="frame_corssDM" src="http://localhost:63342/XDM.html">
postMessage() 方法
</iframe> 假设该页面的访问地址为:http://localhost:63342/XDM1.html
与该页面进行消息传递的页面为:http://localhost:63342/XDM.html(即<iframe>的sr)
这时需要添加JavaScript脚本:首先在http://localhost:63342/XDM1.html 页面(当前页面)添加js 如下:
 var Ele_frame= document.getElementById('frame_corssDM').contentWindow;
    Ele_frame.postMessage('getcolor','http://localhost:63342/');//(参数一是 要发送的字符串,参数二是 消息接收者所在的域的 字符串形式)
接下来在消息接收页面添加js ,由于 接收XDM消息时,会触发 window 对象的 message 事件,所以......
window.addEventListener('message',function(event){
    if(event.origin=="http://localhost:63342"){        //确保消息是发送方是 我们知道的
        var color=document.getElementById('canvasImg').style.backgroundColor;
        window.parent.postMessage(color,'http://localhost:63342');
    }
},false);
我们将消息从当前页面(http://localhost:63342/XDM1.html)发送至消息接收方(http://localhost:63342/XDM.html),之后消息接收方又给当前页面发送一条消息,此时只要在当前页面 添加如下代码......
 window.addEventListener('message',function(event){
        var Ele_CDM=document.getElementsByClassName('CrossDocumentMessage')[0];
        Ele_CDM.innerHTML=event.data;
    },false);
就可将接收到的回显数据添加至页面
跨文档消息传递----postMessage()的更多相关文章
- HTML(六)HTML iframe 使用postMessage方法进行跨文档消息传递
		什么是iframe HTML内联框架元素 <iframe> 表示嵌套的浏览上下文,有效地将另一个HTML页面嵌入到当前页面中. <iframe id="inlineFram ... 
- HTML5跨文档消息传递
		HTML5定义了一些javascript API,其中有一个就是跨文档消息传递(cross-document-messaging简称XDM). 现在XDM已经作为一个规范独立了出来,名字为:Web M ... 
- HTML5实战与剖析之跨文档消息传递(iframe传递信息)
		在来自不同域名的页面间传递消息一般统称为跨文档消息传送,简称XDM.如,www.leemagnum.com域中的页面与位于一个内嵌框架中的http://blog.csdn.net/lee_magnum ... 
- HTML5中的跨文档消息传递
		跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p. ... 
- web通信之跨文档通信 postMessage
		index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&qu ... 
- 通过Html5的postMessage和onMessage方法实现跨域跨文档请求访问
		在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父 ... 
- HTML5 跨文档消息传输
		对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ... 
- Web 通信技术 ——跨文档信息传输(JavaScript)
		*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.html * 作者:常轩 * 微信公众号:Worldh ... 
- HTML5学习之跨文档传输消息(七)
		新标准中提供了文档之间直接的消息传输API.而且不限制跨域消息传递! 发送消息使用的是Window对象的postMessage(data,targetURL)方法就可以了,但给哪个window对象发送 ... 
随机推荐
- HDOJ-1002 A + B Problem II (非负大整数相加)
			http://acm.hdu.edu.cn/showproblem.php?pid=1002 输入的数都是正整数,比较好处理,注意进位. //非负大整数加法 # include <stdio.h ... 
- 无限递归的构造器和javap使用指南
			无限递归的构造器和javap使用指南 public class ConstructorRecursion { ConstructorRecursion rc; { rc = newConstructo ... 
- Android的Bitmap和BitmapDrawable类解析-android学习之旅(六十)
			使用简单图片 使用Drawable对象 bitmap和BitmapDrawable对象 package peng.liu.test; import android.app.Activity; impo ... 
- ecside使用笔记(1)
			1. 部分属性描写叙述: 属性: tableId 描写叙述: 设置列表的唯一标识,默觉得"ec",当一个页面内有多个ECSIDE列表时,必须为每一个列表指定不同的 tableId ... 
- 《github一天一道算法题》:分治法求数组最大连续子序列和
			看书.思考.写代码. /*************************************** * copyright@hustyangju * blog: http://blog.csdn. ... 
- Cooley-Tukey算法  (蝶形算法)
			Cooley-Tukey算法差别于其它FFT算法的一个重要事实就是N的因子能够随意选取.这样也就能够使用N=rS的Radix-r算法了.最流行的算法都是以r=2或r=4为基的,最简单的DFT不须要不论 ... 
- Iframe和父窗口互调方法的集合
			1.子iframe里调用父级的方法:window.parent.document. 2.父级里调用子集iframe:window.frames["iframe_text"].d ... 
- maven01 hello maven
			安装省略,注意jdk的版本1.7: 目录: 
- iOS8毛玻璃效果
			UIBlurEffect*blueEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIVisualEffectView* ... 
- 音量强度转分贝db
			//LPDIRECTSOUNDBUFFER如何设置声音大小?> //取值范围是0 ~ -10000, 0最大,-10000最小,单位是分贝 //0-100音量转换成分贝 double decib ... 
