最近工作中安排了个关于JS跨域问题,项目组最初使用了jquery.postmessage进行跨域,结果发现IE8以下不兼容,所以选择了easyXDM.
但是easyXDM在IE8以下需要FLASH插件支撑,这个时候问题又出现了,我们的页面没有视频,如果用户没有安装FLASH插件的话,那就需要提示用户下载FLASH插件了。
然后我开始用window.name写了个实例,确实能跨域跨浏览器获取数据,但是实时监听数据变化来执行JS方法怎么办,最简单的方法就是建立一个计时器,每隔多少时间执行下看获取的值是否发生改变,然后在执行。
但是这个方法我觉得不是很妥当,于是想到javascript能否建立一个SOCKT进行监听呢,于是查看JSCOKET,发现JSOCKET通信原是借助于FLASH,结果牛人在网上说明,之所以JAVASCRIPT需要依赖FLASH建立SOCKET,是因为JAVASCRIPT是客户端语言,不能进行SOCKT通信.
经过上述的经历,我查了些资料。
1.postMessage 是 HTML5 新方法,它可以实现跨域窗口之间通讯。到目前为止,只有 IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4 支持,而本篇文章主要讲述 postMessage 方法与 message 事件跨浏览器实现。(详细见http://bbs.phpchina.com/thread-230525-1-1.html)
2.jsockt原理是通过JS于FLASH交互,建立SOCKET通信.(详细见http://code.google.com/p/jsocket/wiki/Reference,其中
jSocket.setup(target)
target:string id of the element to replace with the socket.
Add the socket swf to the page, by replacing an element specified with the target argument. jSocket.onReady Will be fired upon succesful completion. )
3.easyXDM 在IE8+, Firefox 3, Opera 9, Chrome 3和 Safari 4使用postmessage,在IE6+,iE7+使用FLASH(详细见http://easyxdm.net/wp/),因此得出easyXDM的跨域原理是分别采用了postmessage跨域及借助FLASH进行跨域。
分享到:
相关推荐
window.postMessage的功能是允许程序员跨域在两个窗口/frames间发送数据信息。基本上,它就像是跨域的AJAX,但不是浏览器跟服务器之间交互,而是在两个客户端之间通信。让我们来看一下window.postMessage是如何工作...
name : "common", //资源文件名称 path : $.contextPath+"/i18n/"+i18nLanguage+"/", //资源文件路径 mode : 'map', //用Map的方式使用资源文件中的值 language : i18nLanguage, cache:false, //指定浏览器...
利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
window.name解决跨域问题的文档,刚才网上发现的.也许有点作用
主要介绍了详解HTML5 window.postMessage与跨域,非常具有实用价值,需要的朋友可以参考下
cookie设置插件jquery.cookie.min.js 文章《javascript设置cookie高级篇可跨域访问》https://blog.csdn.net/cplvfx/article/details/117822956
jquery权威指南及跨域访问和Python指南.zip
利用jquery技术和url传参,实现tomcat网页和Webstorm网页之间实现跨域数据传输
电信设备-一种跨域通信方法及装置.zip
ajax跨域请求,jquery.jsonp插件
html5 API postMessage跨域详解.pdf
一个示例测试页面导出页面内容为word文件,使用chrome浏览器以及wps打开测试目前未发现问题;内部包含了修改后的jquery-word的js文件
NULL 博文链接:https://weistar.iteye.com/blog/1845314
layer弹窗:top.layer弹窗到父页面跨域,通过postMessage方法将子页面的配置对象发送到父页面中,父页面再通过子页面的配置对象打开弹窗,对象内不能存在事件。
flash跨域访问策略。渗透测试时检查crossdomain.xml配置信息,应当重点检查allow-access-from=*、allow-http-request-headers-from=*、site-control=allow将会导致漏洞。特别注意参数为*和all,当站内没有cross...
什么是跨域?跨域解决方法.docx
file协议导致的跨域问题以及解决方案.docx
NULL 博文链接:https://lililucky1211.iteye.com/blog/1853504
JS跨域访问解决方案总结.pdf