HTML5学习之跨文档传输消息(七)

新标准中提供了文档之间直接的消息传输API。而且不限制跨域消息传递!

发送消息使用的是Window对象的postMessage(data,targetURL)方法就可以了,但给哪个window对象发送消息,就使用哪个window的实例来调用,注意这个细节。

文档默认监听一下message事件就可以接受消息了:window.addEventListener("message", function (ev) {});

监听消息事件:ev两个重要属性:ev.source指向发送消息的源window对象,ev.data来获取收到的消息数据

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
      <script>
          window.onload = function() {
              document.getElementById("btn").onclick = function() {
                  document.getElementById("f").contentWindow.postMessage(document.getElementById("t").value, "*");
              };
          };
    </script>
</head>
<body>
    <input id="t" type="text" />
    <input id="btn" type="button" />
    <iframe id="f" src="receiveMsg.html" ></iframe>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">
        window.onmessage = function (event) {
            //event.data  数据  event.origin 消息来源地址  event.source   源DOMWindow 对象
            alert(event.data);
            alert(event.origin);
            alert(event.source);
        }
    </script>
</head>
<body>

</body>
</html>

HTML5学习之跨文档传输消息(七)

时间: 2024-10-06 19:49:41

HTML5学习之跨文档传输消息(七)的相关文章

HTML5中的跨文档消息传递

跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p.w3cmm.com域中的页面通信.在XDM机制出现之前,更稳妥地实现这种通信需要花很多功夫.XDM把这种机制规范化,让我们能既稳妥有简单地实现跨文档通信. XDM的核心是postMessage()方法.在HTML5规范中,除了XDM部分之外的其它部分也会提到这个方法名,但都是为了同一个目的:向另一个

跨域技术之跨文档消息传输

跨文档消息传送,简称为XDM,指的是来自不同的域的页面间的传递消息. 如果两个网页不同源,就无法拿到对方的DOM.典型的例子是iframe窗口和window.open方法打开的窗口,它们与父窗口无法通信. 比如,父窗口运行下面的命令,如果iframe窗口不是同源将会报错. document.getElementById("iframe").contentWindow.document 上面命令中,父窗口想获取子窗口的DOM,因为跨源导致报错. 反之亦然,子窗口获取主窗口的DOM也会报错

跨文档消息

跨文档消息传送 1.想从其他窗口接收到消息必须对窗口对象的message事件进行监听 window.addEventListener("message",function(){},false); 使用window对象的otherwindow.postMessage(message,targetOrigin);//第一个参数为字符串文本或通过JSON.stringify(obj)转换的json字符串 第二个为接受方的url Otherwindow 获取 1.由 window.open()

[HTML5_WebWorkers]HTML5 web通信(跨文档通信/通道通信)简介

一.简单概要 web通信(洋名:web messaging)是一种文档中独立的浏览上下文间的DOM不会被恶意的跨域脚本暴露数据分享方式. 得得得,术语啊什么的,比看到凤姐还头疼.有必要把上面一句话拆开讲: web通信是一种数据分享方式(有屁话之嫌): 通信的主体是“浏览上下文”(这是纳尼?): 哦,“浏览上下文”呢是“一个将 Document对象呈现给用户的环境”,你可以近似理解为平常我们看到的某个页面所处的环境: web通信不会有DOM被恶意暴露的危险: 目前应用比较多的就是iframe之间的

跨文档消息传递 postMessage

一.跨文档消息传递 1. postMessage 发送信息 向当前页面的 <iframe> 元素传送数据 // 接收方window对象.postMessage( "message", "接收方域名" ); var iframeWindow = document.getElementById("myframe").contentWindow; //contentWindow iframeWindow.postMessage("

同域下跨文档通信iframe和window.open

1.iframe标签可以嵌套另一个标签,并且可以通过js去访问被包含的页面的window对象,从而操作该页面下documentElement,如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <s

web通信之跨文档通信 postMessage

index.html <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>web通信之跨文档通信</title> <style> iframe {float:left;width:45%; height:200px; bor

Bootstrap3学习笔记 Bootstrap3文档和栅格系统

?? Bootstrap 使用到的某些 HTML 元素和 CSS 属性须要将页面设置为 HTML5 文档类型. 1)例如以下开头html标签: <!DOCTYPE html> <html lang="zh-CN"> ... </html> 2)Bootstrap3是依照移动设备优先设计的框架.为了确保适当的绘制和触屏缩放.须要加入viewport元数据标签: <meta name="viewport" content=&qu

CoAP学习笔记——IETF文档和draft文档

前言 截至2015年4月,IETF共发布了2份关于CoAP协议的RFC文档,尚有5份文档处于草稿状态.下文便是RFC文档和草稿文档的链接地址.     更多物联网博文请参考--[物联网学习笔记--索引博文] RFC文档 [RFC 7252] The Constrained Application Protocol (CoAP) [RFC 6690] Constrained RESTful Environments (CoRE) Link Format draft文档 [1]Constrained