html5 postMessage解决iframe跨协议跨域通信问题
2016-11-23 14:06
567 查看
a.html有个iframe载入b.com/login.html,当login完成时通知a.html页面登录完成并传递UserName
1.a.html 监听消息
window.addEventListener('message', function (event) { // 通过origin属性判断消息来源地址 //if (event.origin == 'http://127.0.0.1:10847') { console.log(event.data); alert(event.data+'|'+typeof(event.data)); // 弹出从子页面post过来的信息 //} }, false);
2.iframe内嵌页login.html postMessage
var ifr = window.parent; //获取父窗体
var targetOrigin = 'http://localhost:10847'; // 若写成 http://127.0.0.1:10847 则将无法执行postMessage//ifr.postMessage('这是传递给a.html的信息', targetOrigin);
ifr.postMessage('{UserName:"zhangsan"}', "*"); //*允许跨域
3.跨协议(h5做的app访问网页交换信息)
直接双击运行a.html也可完美运行.(此时a.html的访问协议为file:/// 而login.html的访问协议为http:// 暂未查到其他可用的跨协议跨域通信办法,查到的办法都是http协议下的通信). 参考:http://www.cnblogs.com/vajoy/p/4295825.html相关文章推荐
- [转]html5: postMessage解决跨域和跨页面通信的问题
- 通过伪协议解决父页面与iframe页面通信的问题
- iframe跨域通信--html5.postmessage
- HTML5 postMessage解决跨域、跨iframe窗口消息传递
- 通过伪协议解决 父页面与iframe页面通信的问题
- html5中的postMessage解决跨域问题
- 通过伪协议解决 父页面与iframe页面通信的问题
- 使用HTML5中postMessage知识点解决Ajax中POST跨域问题
- html5 Postmessage解决跨域问题
- flex和socket通信的跨域问题解决方案
- ie6 iFRAME解决cookie跨域问题
- 解决ASP.NET AJAX在frame及iframe中跨域访问的问题
- 51与PC通信协议设计及实现(二):如何解决51单片机中的独立键盘与矩阵键盘的串扰问题
- iframe跨域自适应高度问题的解决方法
- 通过P3P协议,实现跨域set cookie,解决同域IFRAME中SESSION传递失效问题
- HTML5 postMessage和跨域通信
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- asp.net 解决iframe跨域读写Cookies的问题
- 解决iframe跨域读写Cookies的问题,(ASP、ASP.NET、PHP、JSP)解决方案
- IFrame引用跨域站点页面时,Session失效问题解决