postMessage()实现跨域
来源:互联网 发布:网络诈骗如何举报网站 编辑:程序博客网 时间:2024/05/16 02:09
postMessage()方法简介
它是window方法,允许来自非同源脚本调用,通过异步消息传递的方式,允许有限的通信。它在HTML5标准中定义,且所有主流浏览器都实现该通信机制,这项技术称为“跨文档消息传递”,又称“窗口间消息传递”或“跨域消息传递”。
postMessage()调用
它接受两个参数,第一个是要传递的消息,第二个指定目标窗口的源(可以传递一个完整的URL,但是除了协议,端口,主机名之外的信息都会被忽略)。
相应的事件处理程序message
目标窗口的window对象会触发message事件,该事件会收到一个参数,这个参数由如下属性
- data,表示消息内容的副本;
- source,消息源的window对象;
- origin, 指定消息来源(url的形式);
下面是两个不同域下的消息传递:
www.script.newdomain.com/
<script> window.addEventListener('message',function(event){ if(event.origin=="http://www.newdomain.com"){ localStorage.message=event.data; //这里可通过多种方式保存获取的event.data; } },false); console.log(localStorage.message); //输出 Domain1 sends message to Domain2;</script>
www.newdomain.com/
<html> <body> <iframe id="ifr" src="http://www.script.newDomain.com/newDomain2/test.html"></iframe> </body> <script> window.onload=function(){ var ifr=document.getElementById('ifr'); ifr.style.display="none"; var targetOrigin="http://www.script.newDomain.com"; ifr.contentWindow.postMessage('Domain1 sends message to Domain2',targetOrigin); } </script></html>
0 0
- postMessage()实现跨域
- HTML5-postMessage实现跨域
- 使用window.postMessage实现跨域通信
- 用postMessage实现跨域通信
- 使用window.postMessage实现跨域通信
- window.postMessage实现跨域通信
- postMessage实现跨域密码代添
- HTML5:使用postMessage实现Ajax跨域请求
- 利用HTML5的window.postMessage实现跨域通信
- HTML5之window.postMessage实现跨域传递消息
- window.name 结合postMessage api 实现跨域
- HTML5 postMessage+iframe实现文件跨域异步上传
- 利用HTML5的window.postMessage实现跨域通信
- HTML5之postMessage和setEventListener实现<iframe>跨域通信
- 跨域解决方案之postMessage
- 使用html5 postMessage和window.name实现多浏览器跨域
- 用postMesage实现跨域,并解决Failed to execute 'postMessage' on 'DOMWindow'
- html5的postmessage实现js前端跨域访问及调用解决方案
- HDU-5668-Circle(中国余数定理/解同余方程组)
- c++实验4——项目七——百钱百鸡问题
- 数据结构实验报告 栈和队列
- SASS如何实现PX转REM
- LeetCode 49. Group Anagrams
- postMessage()实现跨域
- c++实验4—星形图
- div中img显示问题
- poj 2488 A Knight's Journey
- android shape浅析
- 【SSH】Java之静态代理和动态代理
- Holding Bin-Laden Captive! hdoj 1085 (母函数初学,其他简便方法)
- 二.I/O模型
- 轻松解决mscorsvw.exe进程CPU占用高的问题