H5中怎样使用postMessage实现两个网页间传递数据


本文摘自PHP中文网,作者php中世界最好的语言,侵删。

这次给大家带来H5中怎样使用postMessage实现两个网页间传递数据,怎么用H5的postMessage实现两个网页间传递数据?postMessage两个网页间传递数据的注意事项有哪些,下面就是实战案例,一起来看一下。

估计很少人知道HTML5 APIS里有一个window.postMessage API。window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作的。除了IE6、IE7之外的所有浏览器都支持这个功能。

数据发送端

首先我们要做的是创建通信发起端,也就是数据源”source”。作为发起端,我们可以open一个新窗口,或创建一个iframe,往新窗口里发送数据,简单起见,我们每6秒钟发送一次,然后创建消息监听器,从目标窗口监听它反馈的信息。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

//弹出一个新窗口  

var domain = 'http://scriptandstyle.com';  

var myPopup = window.open(domain   

            + '/windowPostMessageListener.html','myWindow');  

   

//周期性的发送消息  

setInterval(function(){  

 var message = 'Hello!  The time is: ' + (new Date().getTime());  

 console.log('blog.local:  sending message:  ' + message);  

        //send the message and target URI  

 myPopup.postMessage(message,domain);  

},6000);  

   

//监听消息反馈  

window.addEventListener('message',function(event) {  

 if(event.origin !== 'http://scriptandstyle.com') return;  

 console.log('received response:  ',event.data);  

},false);

这里我使用了window.addEventListener,但在IE里这样是不行的,因为IE使用window.attachEvent。如果你不想判断浏览器的类型,可以使用一些工具库,比如jQuery或Dojo。

假设你的窗口正常的弹出来了,我们发送一条消息――需要指定URI(必要的话需要指定协议、主机、端口号等),消息接收方必须在这个指定的URI上。如果目标窗口被替换了,消息将不会发出。

我们同时创建了一个事件监听器来接收反馈信息。有一点极其重要,你一定要验证消息的来源的URI!只有在目标方合法的情况才你才能处理它发来的消息。

阅读剩余部分

相关阅读 >>

html5的video标签操作视频详解

html5是什么意思

html5设置视频背景的方法介绍

html5 canvas实现简单的双缓冲

html5移动端-viewport的详解

什么是html语义化?html语义化的好处(总结)

使用html5的5大原因是什么

如何使用html5 canvas实现图像的马赛克

html5上传视频无法播放以及兼容的解决方法(图)

关于html5的知识小结

更多相关阅读请进入《postmessage》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...