easyXDM使用
easyXDM是个javascript跨域解决方案,支持包括ie6的主流浏览器。其实现机制针对ie和html个不同:
文档:
https://github.com/oyvindkinsey/easyXDM#readme
这个文档先仔细读,你会发现首先,使用easyXDM需要在两个域页面上都写代码,那么你要有两个域的代码控制权。这一下子就明白了吧,还是老套路,没有那么纯洁的跨域方案的。不需要flash代码不是说不依赖flash,上面写得清楚要求flash6以上。
入门教程倒是简单:
http://easyxdm.net/wp/category/getting-started/
其consumer是发起会话的页面,它会指定remote参数,easyXDM会依据remote创建一个隐藏的iframe,其src指向的就是remote的值,通过向这个iframe发跨域消息来达到目的。
不过我怎么总觉得发起会话的应该是provider呢,接收消息的remote才是consumer吧?
对于大多数场景,是一个页面A包含了一个跨域的iframe页面B,我们想这两个页面互相通信,要这样做,那就要将remote指向B,你可以通过container来指定iframe的包含容器,通过props来制定这个iframe的样式,https://github.com/oyvindkinsey/easyXDM#how-to-use-easyxdm
其他:
local:的参数是要指向本域的name.html, 这个是ie6,7才需要的。
我测试ie8以下就有错误,不知什么情况。