[发明专利]克服浏览器同源策略限制的交互方法及设备在审
申请号: | 201510566229.6 | 申请日: | 2015-09-08 |
公开(公告)号: | CN105183851A | 公开(公告)日: | 2015-12-23 |
发明(设计)人: | 贾春乐;丁亚飞;赵帅 | 申请(专利权)人: | 上海上讯信息技术股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海百一领御专利代理事务所(普通合伙) 31243 | 代理人: | 甘章乖 |
地址: | 201203 上海市浦东新区张*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 克服 浏览器 同源 策略 限制 交互 方法 设备 | ||
技术领域
本申请涉及计算机领域,尤其涉及一种克服浏览器同源策略限制的交互方法及设备。
背景技术
同源策略是浏览器的保护机制的一部分,该机制将来自不同域(假设域代表的是始发者)的web应用程序分离开来。也就是说,如果多个窗口或框架中的一些应用程序是从不同的域下载的,那么它们是无法相互访问数据和脚本的。具体来说,相同的ip、相同的网络协议、相同的端口,三者都满足就是同一个域,否则就属于不同域网站间的问题。因为浏览器同源策略的限制,一般情况下是不能直接通过一个域上加载的脚本获取或者操作另一个域上的文档属性。
要进行不同域网页间的信息交互或DOM操作,就要设法绕过或者说克服同源策略的限制。当前主要采用的技术有以下几种:
1)Document.domain的方式,但这种方式只能适用于不同子域的情况;
2)Window.name的方式,但这种方式浏览器兼容的支持有限,只有ie6、ie7支持,而且数据通信量有限;
3)HTML5postMessage的方式,但这种方式支持的浏览器有限,只有支持HTML5的浏览器才可以用这种方式;
4)JSONP的方式,浏览器兼容性好,但是这种方式只支持POST而不支持GET请求,并且只支持数据的交互,并不能解决不同域的页面间脚本调用DOM操作的问题。而且这是一种脚本注入的行为,存在一定的安全隐患。
发明内容
本申请的一个目的是提供一种克服浏览器同源策略限制的交互方法及设备,能够解决因为浏览器同源策略的限制,不同域下的网页之间不能进行数据传递和DOM控制的问题。
根据本申请的一个方面,提供了一种克服浏览器同源策略限制的交互方法,其中,该方法包括:
通过统一资源定位符的location.hash携带待传递的数据在不同域的父页面和子页面之间传递数据;
和/或以统一资源定位符的location.hash作为标识触发父页面或子页面DOM操作,完成不同域的父页面和子页面之间的脚本调用。
进一步的,上述克服浏览器同源策略限制的交互方法中,通过统一资源定位符的location.hash携带待传递的数据在不同域的父页面和子页面之间传递数据中,当子页面获取父页面的待传递数据时,包括:
在父页面设置一个iframe元素,并将所述iframe元素的属性src设置为子页面的链接;
将所述待传递的数据放在属性src的统一资源定位符的location.hash中;
在子页面中定义一个变量,监听location.hash中待传递数据是否有变化,如果有变化,将有变化的待传递数据赋值给所述变量。
进一步的,上述克服浏览器同源策略限制的交互方法中,在子页面中定义一个变量,监听location.hash中待传递数据是否有变化,如果有变化,将有变化的待传递数据赋值给所述变量,包括:
在子页面中定义一个变量,子页面每隔预设时间获取location.hash中的待传递数据,将获取到的待传递数据与所述变量的值进行比较,如果待传递数据与所述变量的值不同,则将所述待传递数据重新赋值给所述变量。
进一步的,上述克服浏览器同源策略限制的交互方法中,在父页面设置一个iframe元素,并将所述iframe元素的属性src设置为子页面的链接之后,还包括:
通过对所述iframe元素的css样式的设置使所述子页面不显示。
进一步的,上述克服浏览器同源策略限制的交互方法中,以统一资源定位符的location.hash作为标识触发子页面DOM操作,完成不同域的父页面和子页面之间的脚本调用,包括:
在父页面设置一个iframe元素,并将所述iframe元素的属性src设置为子页面的链接;
将触发子页面DOM操作的标识放在属性src的统一资源定位符的location.hash中;
在子页面中定义一个变量,监听location.hash中所述标识是否有变化,如果有变化,将有变化的所述标识赋值给所述变量;
子页面根据所述变量的新赋值进行子页面中相关的脚本调用的DOM操作。
进一步的,上述克服浏览器同源策略限制的交互方法中,在子页面中定义一个变量,监听location.hash中所述标识是否有变化,如果有变化,将有变化的所述标识赋值给所述变量,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海上讯信息技术股份有限公司,未经上海上讯信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510566229.6/2.html,转载请声明来源钻瓜专利网。