HTML5-postMessage实现跨域
跨域
只要在同一域名下,即使在不同的文件中;js是不存在跨域问题的,当然其它情况夏就涉及到js的跨域问题 网上有很多方法,JSONP,代理iframe等等……
看了网上关于利用HTML5的postMessage
来进行跨域, 参照自己写了一个demo。
Domo
该页面上有两个frame,第一个加载的是http://www.poised-flw.tk/demo/iframe.html; 另一个加载的是当前目录下的iframe.html。
第一个frame中会持续的调用postMessage
发送信息;然后在第二个frame中会监听message
事件收到第一个frame发送的信息!
发送信息
window.setInterval(function() {
var message = "你好!我是http://www.poised-flw.tk的页面" + (new Date());
/* 接受第二个参数:代表目标窗口的源地址,只是源地址!
* '*'代表哪儿都能发
* '/'代表只能给处在同一目录下的窗口发
* 若给定地址,如http://www.poised-flw.com;
* 则只能向src为这个地址的frame发。
*/
window.parent.frames[1].postMessage(message, "*");
}, 1000);
接受信息
window.addEventListener('message', function(e) {
/*
* e.data {string} 发送的信息
* e.origin {string} 发送的源地址,可以与postMessage的第二个参数一起使用
* */
console.log(e.data);
}, false);
- 上一篇:兼容多浏览器的Ajax请求代码
- 下一篇:领悟z-index的渲染机制