跨文档消息传递----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对象发送 ...
随机推荐
- OSChina技术导向:Java图表框架JFreeChart
JFreeChart主要用来各种各样的图表,这些图表包括:饼图.柱状图(普通柱状图以及堆栈柱状图).线图.区域图.分布图.混合图.甘特图以及一些仪表盘等等. JavaDoc文档 ...
- Geoserver基本使用、WMS服务发布与OpenLayers测试
1.Geoserver与OpenLayers的下载 Geoserver:http://geoserver.org/ OpenLayers:http://openlayers.org/ 2.安装部署Ge ...
- openstack 使用cloud init 和 console-log, nbd或者libguestfs 获取VM中的硬件信息。
以获取PCI的信息为例. 基本代码: pci.py import base64 import guestfs from functools import partial import os impor ...
- OC基础15:内存管理和自动引用计数
"OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.什么是ARC? (1).ARC全名为A ...
- 【MFC初学】
void CMy322Dlg::OnButton1() { UpdateData(TRUE); m_crypt=m_plaintxt; for(int i=0;i<m_plaintxt.GetL ...
- perl install module && normal module
Windows: perl -MCPAN -e shell install XML::GDOME Archive::Zip 后面继续更新... Archive usage: $obj = Arc ...
- Activity关闭另一个Acitivity
1.ActivityA跳转到ActivityB 2.ActivityB跳转到ActivityC 3.ActivityC结束掉自己的同时结束ActivityB 在ActivityB中声明一个自己的参数i ...
- laravel中间件源码分析
laravel中间件源码分析 在laravel5.2中,HTTP 中间件为过滤访问你的应用的 HTTP 请求提供了一个方便的机制.在处理逻辑之前,会通过中间件,且只有通过了中间件才会继续执行逻辑代码. ...
- php 截取字符串
/** * 方法库-截取字符串-[该函数作者未知] * @param string $string 字符串 * @param int $length 字符长度 * @param string $dot ...
- python-base64编码与解码
base64编码原理: 例如: 实例一: #-*- coding: UTF-8 -*- ' __date__ = '2015/12/23' import base64 code = "aGV ...