一种跨域网页的JavaScript函数调用方法以及装置制造方法及图纸

技术编号:18050038 阅读:79 留言:0更新日期:2018-05-26 08:04
本发明专利技术公开了一种跨域网页的JavaScript函数调用方法以及装置,方法包括:S1、主页面调用嵌入页面的JavaScript函数:主页面将主页面参数通过IFRAME标签中的URL的锚传递到嵌入页面中,嵌入页面监听从锚中提取的主页面参数,并在主页面参数的数值改变时基于主页面参数调用嵌入页面的JavaScript函数;S2、嵌入页面调用主页面的JavaScript函数:在嵌入页面中嵌入与主页面同域且隐藏显示的辅助页面,嵌入页面基于嵌入页面参数修改IFRAME标签中的URL的查询参数,辅助页面刷新后从查询参数提取出嵌入页面参数,并基于嵌入页面参数调用主页面的JavaScript函数。本发明专利技术实现了在主页面和嵌入页面无需刷新情况下实现参数传递与方法调用。

【技术实现步骤摘要】
一种跨域网页的JavaScript函数调用方法以及装置
本专利技术涉及通信领域,尤其涉及一种跨域网页的JavaScript函数调用方法以及装置。
技术介绍
现在越来越多的应用系统开始采用BS架构,在WEB应用层产生了系统之间直接交互的需求也越来越多。例如某应用系统的页面A通过iframe标签内嵌GIS地图系统页面B的操作来响应页面A的事件。这些系统之间多为内网应用,一般极少采用域名访问,多用IP地址代替。出于安全考虑,浏览器对JavaScript脚本进行了同源策略限制,不允许跨域网页间对象的直接调用。同源策略要求“协议+域名+端口”完全一致,即使是主域相同的不同子域,也是不可直接跨域通讯的。因此,要实现WEB应用层页面的交互,就必然要解决iframe跨域网页的JavaScript跨域调用的问题。为此,现有技术的第一种方案是,使用相同的主域名作为document对象的域名实现跨域调用。例如,主域名相同(假设为xxx.com)而子域不同的两个页面A(假设来自域a.xxx.com)和B(假设来自域b.xxx.com)之间使用iframe嵌套,然后在A和B两个页面中设置“document.domain=‘xxx.com’”。这种做法可以“欺骗”两个页面的对象以为在同一个域。但是这种方法的缺陷是,只能用于主域相同的两个子域间的调用,如果两个域主域不同时(例如域直接使用IP),修改document.domain会报错;另外,修改document.domain可能影响页面基于document.domain属性的原有功能。现有技术的第二种方案是,使用window.name实现的跨域数据传输。例如,页面A.html(假设来自www.aaa.com)使用iframe内嵌页面B.html(假设来自www.bbb.com),并监听用iframe的onload事件,在B页面加载完立即处理B页面的window.name的值。这种方法具有以下缺陷:一是,传递参数必须通过刷新加载页面来实现,这种方式无法保持B页面的状态;二是,这种方式只实现数据的跨域传递,未实现JavaScript函数的调用;三是,这种方式只能单向的,从主页面A到内嵌页面B,不能反向传递数据。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种跨域网页的JavaScript函数调用方法以及装置。本专利技术解决其技术问题所采用的技术方案是:构造一种跨域网页的JavaScript函数调用方法,包括:S1、主页面调用嵌入页面的JavaScript函数:主页面将主页面参数通过嵌入页面的IFRAME标签中的URL的锚传递到嵌入页面中,嵌入页面监听从锚中提取的主页面参数,并在主页面参数的数值改变时基于主页面参数调用嵌入页面的JavaScript函数;S2、嵌入页面调用主页面的JavaScript函数:在嵌入页面中嵌入与主页面同域且隐藏显示的辅助页面,嵌入页面基于嵌入页面参数修改辅助页面的IFRAME标签中的URL的查询参数,辅助页面刷新后从查询参数提取出嵌入页面参数,并基于嵌入页面参数调用主页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用方法中,所述步骤S1具体包括:S11、主页面事件触发,在事件中收集主页面参数;S12、将主页面参数转换成第一字符串;S13、修改主页面中的嵌入页面的IFRAME标签,将所述第一字符串作为URL的锚;S14、嵌入页面注册定时控制事件,每隔预设时间从URL的锚中提取出主页面参数;S15、如果检测到主页面参数的数值改变,将主页面参数作为函数参数调用嵌入页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用方法中,所述步骤S12中具体为:将主页面参数和一个新的GUID/随机数共同组合形成第一字符串。在本专利技术所述的跨域网页的JavaScript函数调用方法中,所述步骤S2具体包括:S21、嵌入页面事件触发,在事件中收集嵌入页面参数;S22、将嵌入页面参数转换为第二字符串;S23、修改嵌入页面中的辅助页面的IFRAME标签,将所述第二字符串作为URL的查询参数;S24、辅助页面重新加载,并从URL的查询参数中提取出嵌入页面参数;S25、在辅助页面中以嵌入页面参数作为函数参数,通过window.parent.parent调用主页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用方法中,所述步骤S22中具体为:将嵌入页面参数和一个新的GUID/随机数共同组合形成第二字符串。本专利技术还公开了一种跨域网页的JavaScript函数调用装置,包括:第一调用装置,用于将主页面参数通过嵌入页面的IFRAME标签中的URL的锚传递到嵌入页面中,以及用于嵌入页面监听从锚中提取的主页面参数,并在主页面参数的数值改变时基于主页面参数调用嵌入页面的JavaScript函数;第二调用装置,用于在嵌入页面中嵌入与主页面同域且隐藏显示的辅助页面,以及用于基于嵌入页面参数修改辅助页面的IFRAME标签中的URL的查询参数,以及在辅助页面刷新后从查询参数提取出嵌入页面参数,并基于嵌入页面参数调用主页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用装置中,所述第一调用装置包括:第一参数收集单元,用于在主页面事件触发后在事件中收集主页面参数;第一参数转换单元,用于将主页面参数转换成第一字符串;第一参数传递单元,用于修改主页面中的嵌入页面的IFRAME标签,将所述第一字符串作为URL的锚;第一参数提取单元,用于在嵌入页面注册定时控制事件,每隔预设时间从URL的锚中提取出主页面参数;第一函数调取单元,用于在检测到主页面参数的数值改变时,将主页面参数作为函数参数调用嵌入页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用装置中,第一参数转换单元还用于将主页面参数和一个新的GUID/随机数共同组合形成第一字符串。在本专利技术所述的跨域网页的JavaScript函数调用装置中,第二调用装置包括:第二参数收集单元,用于在嵌入页面事件触发后在事件中收集嵌入页面参数;第二参数转换单元,用于将嵌入页面参数转换为第二字符串;第二数传递单元,用于修改嵌入页面中的辅助页面的IFRAME标签,将所述第二字符串作为URL的查询参数;第二参数提取单元,用于在辅助页面重新加载后,从URL的查询参数中提取出嵌入页面参数;第二函数调取单元,用于在辅助页面中以嵌入页面参数作为函数参数,通过window.parent.parent调用主页面的JavaScript函数。在本专利技术所述的跨域网页的JavaScript函数调用装置中,第二参数转换单元还用于将嵌入页面参数和一个新的GUID/随机数共同组合形成第二字符串。实施本专利技术的跨域网页的JavaScript函数调用方法以及装置,具有以下有益效果:本专利技术从主页面传递过来的参数是以锚的方式添加到IFRAME标签中的URL中,保证在主页面调用嵌入页面的JavaScript函数的过程中,嵌入页面不刷新;在嵌入页面调用主页面的JavaScript函数时,借助嵌入在嵌入页面中的与主页面同域的辅助页面的加载,在主页面和嵌本文档来自技高网
...
一种跨域网页的JavaScript函数调用方法以及装置

【技术保护点】
一种跨域网页的JavaScript函数调用方法,其特征在于,包括:S1、主页面调用嵌入页面的JavaScript函数:主页面将主页面参数通过嵌入页面的IFRAME标签中的URL的锚传递到嵌入页面中,嵌入页面监听从锚中提取的主页面参数,并在主页面参数的数值改变时基于主页面参数调用嵌入页面的JavaScript函数;S2、嵌入页面调用主页面的JavaScript函数:在嵌入页面中嵌入与主页面同域且隐藏显示的辅助页面,嵌入页面基于嵌入页面参数修改辅助页面的IFRAME标签中的URL的查询参数,辅助页面刷新后从查询参数提取出嵌入页面参数,并基于嵌入页面参数调用主页面的JavaScript函数。

【技术特征摘要】
1.一种跨域网页的JavaScript函数调用方法,其特征在于,包括:S1、主页面调用嵌入页面的JavaScript函数:主页面将主页面参数通过嵌入页面的IFRAME标签中的URL的锚传递到嵌入页面中,嵌入页面监听从锚中提取的主页面参数,并在主页面参数的数值改变时基于主页面参数调用嵌入页面的JavaScript函数;S2、嵌入页面调用主页面的JavaScript函数:在嵌入页面中嵌入与主页面同域且隐藏显示的辅助页面,嵌入页面基于嵌入页面参数修改辅助页面的IFRAME标签中的URL的查询参数,辅助页面刷新后从查询参数提取出嵌入页面参数,并基于嵌入页面参数调用主页面的JavaScript函数。2.根据权利要求1所述的跨域网页的JavaScript函数调用方法,其特征在于,所述步骤S1具体包括:S11、主页面事件触发,在事件中收集主页面参数;S12、将主页面参数转换成第一字符串;S13、修改主页面中的嵌入页面的IFRAME标签,将所述第一字符串作为URL的锚;S14、嵌入页面注册定时控制事件,每隔预设时间从URL的锚中提取出主页面参数;S15、如果检测到主页面参数的数值改变,将主页面参数作为函数参数调用嵌入页面的JavaScript函数。3.根据权利要求2所述的跨域网页的JavaScript函数调用方法,其特征在于,所述步骤S12中具体为:将主页面参数和一个新的GUID/随机数共同组合形成第一字符串。4.根据权利要求1所述的跨域网页的JavaScript函数调用方法,其特征在于,所述步骤S2具体包括:S21、嵌入页面事件触发,在事件中收集嵌入页面参数;S22、将嵌入页面参数转换为第二字符串;S23、修改嵌入页面中的辅助页面的IFRAME标签,将所述第二字符串作为URL的查询参数;S24、辅助页面重新加载,并从URL的查询参数中提取出嵌入页面参数;S25、在辅助页面中以嵌入页面参数作为函数参数,通过window.parent.parent调用主页面的JavaScript函数。5.根据权利要求4所述的跨域网页的JavaScript函数调用方法,其特征在于,所述步骤S22中具体为:将嵌入页面参数和一个新的GUID/随机数共同组合形成第二字符串。6.一种跨域网页的JavaScript函...

【专利技术属性】
技术研发人员:葛忠雷
申请(专利权)人:深圳联友科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1