跨域信息交互方法、装置及系统
技术领域
本发明涉及信息交互技术领域,特别是涉及跨域信息交互方法、装置及系统。
背景技术
随着互联网的不断发展,网页的设计也日益复杂。在一个网页中可以包含有多个框架页iframe。在修改网页中的一个iframe中的信息时,常常需要同时修改该网页或该网页中的其他iframe中的信息。当网页与该网页中的iframe是不同域时,或该网页中的多个iframe是不同域时,就需要进行跨域信息交互。
现有的跨域信息交互方案是通过对网页、iframe的统一资源定位符URL进行修改来进行的。URL中“#”及后方的字符被称为frag部分,一般用于浏览器锚点定位,由于服务器并不关心frag部分,因此修改frag部分不会导致页面刷新,可以将其作为信息传输媒介。具体的,网页可以修改该网页中iframe的URL中的frag部分,iframe也可以修改其所在网页的URL中的frag部分。这样,网页和iframe通过定期检测自己的URL是否发生变化就可以得知是否有消息传入,从而获得改变后的frag部分进行相应处理。
但是,由于URL的长度限制,导致frag部分可以携带的信息量十分有限,同时,URL中不支持某些字符,这也导致所传输信息受到限制。
发明内容
本发明实施例的目的在于提供一种跨域信息交互方法、装置及系统,以提高页面之间信息交互的效率。
为达到上述目的,本发明实施例公开了一种跨域信息交互方法,应用于第二页面所在域的服务器,所述方法包括:
接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理;
其中,所述第一页面为父页面,所述第二页面为所述父页面内的框架页;或所述第一页面为框架页,所述第二页面为该框架页的父页面。
优选的,所述接收第一页面所在域的服务器通过第一PostMessage发送的第一消息前,所述方法还包括:
绑定Message事件以监听第一页面所在域的服务器发送的PostMessage消息;
所述接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,包括:
当监听到所述第一页面所在域的服务器通过所述第一PostMessage发送第一消息时,接收所述第一消息。
优选的,所述第一消息中还携带有返回指令;
在所述根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理后,所述方法还包括:
根据所述返回指令判断是否需要向所述第一页面所在域的服务器返回进行所述第一处理后的结果;
如果是,则通过第二PostMessage向所述第一页面所在域的服务器发送第二消息,所述第二消息中携带有所述第一处理后的结果。
优选的,所述第一页面为框架页,所述第二页面为该框架页的父页面;
所述方法还包括:
通过第三PostMessage向第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据,以使所述第三页面所在域的服务器执行所述第一指令,使用所述第一传输数据进行第一处理。
优选的,所述第一页面为父页面,所述第二页面为所述父页面内的框架页;
所述方法还包括:
接收用户针对所述第二页面的配置修改指示;
根据所述配置修改指示,通过第四PostMessage向第一页面所在域的服务器发送第四消息,所述第四消息中携带有与所述配置修改指示对应的第二指令和执行所述第二指令需要使用的配置修改数据,以使所述第一页面所在域的服务器根据所述第四消息执行所述第二指令,使用所述配置修改数据进行配置修改处理。
优选的,所述配置修改指示用于指示进行头像修改;
所述第二指令为头像修改指令;
所述配置修改数据为修改后的头像数据。
优选的,所述消息被设置为JSON字符串;
所述根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理包括:
将所述第一消息转换为第一对象,所述第一对象中携带有所述第一传输数据和所述第一指令;
执行所述第一对象中的所述第一指令,以使用所述第一传输数据进行第一处理。
一种跨域信息交互装置,应用于第二页面所在域的服务器,所述装置包括:消息接收单元和指令执行单元,
所述消息接收单元,用于接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
所述指令执行单元,用于根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理;
其中,所述第一页面为父页面,所述第二页面为所述父页面内的框架页;或所述第一页面为框架页,所述第二页面为该框架页的父页面。
优选的,还包括:消息监听单元,用于在所述消息接收单元接收第一页面所在域的服务器通过第一PostMessage发送的第一消息前,绑定Message事件以监听第一页面所在域的服务器发送的PostMessage消息;
所述消息接收单元,具体用于:当所述消息监听单元监听到所述第一页面所在域的服务器通过所述第一PostMessage发送第一消息时,接收所述第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据。
优选的,所述第一消息中还携带有返回指令;
所述装置还包括:返回判断单元和消息返回单元,
所述返回判断单元,用于在所述指令执行单元根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理后,根据所述返回指令判断是否需要向所述第一页面所在域的服务器返回进行所述第一处理后的结果,如果是,则触发所述消息返回单元;
所述消息返回单元,用于通过第二PostMessage向所述第一页面所在域的服务器发送第二消息,所述第二消息中携带有所述第一处理后的结果。
优选的,所述第一页面为框架页,所述第二页面为该框架页的父页面;
所述装置还包括:消息发送单元,用于通过第三PostMessage向第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据,以使所述第三页面所在域的服务器执行所述第一指令,使用所述第一传输数据进行第一处理。
优选的,所述第一页面为父页面,所述第二页面为所述父页面内的框架页;
所述装置还包括:指示接收单元和指示传递单元,
所述指示接收单元,用于接收用户针对所述第二页面的配置修改指示;
所述指示传递单元,用于根据所述配置修改指示,通过第四PostMessage向第一页面所在域的服务器发送第四消息,所述第四消息中携带有与所述配置修改指示对应的第二指令和执行所述第二指令需要使用的配置修改数据,以使所述第一页面所在域的服务器根据所述第四消息执行所述第二指令,使用所述配置修改数据进行配置修改处理。
优选的,所述配置修改指示用于指示进行头像修改;
所述第二指令为头像修改指令;
所述配置修改数据为修改后的头像数据。
优选的,所述消息被设置为JSON字符串;
所述指令执行单元包括:消息转换子单元和指令执行子单元,
消息转换子单元,用于将所述第一消息转换为第一对象,所述第一对象中携带有所述第一传输数据和所述第一指令;
指令执行子单元,用于执行所述第一对象中的所述第一指令,以使用所述第一传输数据进行第一处理。
一种跨域信息交互系统,包括:第一页面所在域的服务器、第二页面所在域的服务器及第三页面所在域的服务器,所述第二页面为所述第一页面和所述第三页面的父页面;
所述第一页面所在域的服务器,用于通过第一PostMessage向所述第二面所在域的服务器发送第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
所述第二页面所在域的服务器,用于根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理,所述第二页面所在域的服务器还用于通过第三PostMessage向所述第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据;
所述第三页面所在域的服务器,用于执行所述第三消息中的第一指令,以使用所述第一传输数据进行第一处理。
本发明实施例提供的一种跨域信息交互方法、装置及系统,可以使某页面所在域的服务器通过PostMessage向另一页面所在域的服务器发送携带有数据的消息。由于该消息所携带数据的类型较多,因此相对于使用URL的frag部分进行跨域信息交互的技术来说传输信息时受到的限制较小。同时,本发明所使用的消息所携带的数据量也较大,可以有效提高跨域信息交互的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨域信息交互方法的流程图;
图2为本发明实施例提供的一种页面示意图;
图3为本发明实施例提供的另一种跨域信息交互方法的流程图;
图4为本发明实施例提供的一种跨域信息交互装置的结构示意图;
图5为本发明实施例提供的另一种跨域信息交互装置的结构示意图。具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种跨域信息交互方法,应用于第二页面所在域的服务器中,该方法可以包括:
S100、接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
本发明实施例中,第一页面可以为父页面,而第二页面可以为第一页面内即父页面内的框架页;或者,第一页面可以为框架页,而第二页面为第一页面即该框架页的父页面。
具体的,第一消息中还可以携带有发送方信息和接收方信息,其中,所述发送方为所述第一页面所在域的服务器,所述接收方为所述第二页面所在域的服务器。举例而言,发送方信息可以为发送方的名称和/或IP地址等信息;接收方信息可以为接收方的名称和/或IP地址等信息。
本发明实施例中,所述第一页面所在域与所述第二页面所在域为不同域。可以理解的是,不同域的服务器一般不同,如baidu的服务器和sina的服务器。当然,不同域的内容可以显示在同一网页中,例如浏览器打开了baidu的一个网页,该网页中含有一个sina的广告视频,该广告视频的域名为sina。
具体的,在实际应用中,可以设定第一消息中携带的第一传输数据的数据量的上限大于、等于或小于URL中的frag部分可携带的数据量上限。第一消息中携带的第一传输数据的格式可以为frag部分所支持的格式,也可以为frag部分不支持的格式。
其中,第一消息可以为第一字符串,例如为JSON字符串,也可以为逗号分隔的纯文本字符串,比如“open,url,ab12345”。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-2623rd Edition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、avaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。
举例一:第一字符串中的内容可以为:
{
"id":"1",
"source":"portrait",
"destination":"ucenter",
"command":"rename",
"return":true,
"data":"new name"
}
其中,1为该字符串的ID,portrait为第一页面的名称,为第一字符串所携带的发送方信息source,ucenter为第二页面的名称,为第一字符串所携带的接收方信息destination,rename为第一指令,为第一字符串所携带的指令command,true为确认返回结果,为第一字符串所携带的返回指令return,new name为第一传输数据,为第一字符串所携带的数据date。可以看出,第一页面portrait所在域的服务器通过ID为1的字符串向第二页面ucenter所在域的服务器发送消息。
PostMessage是Windows应用程序接口API中的一个常用函数,用于将一条消息放入到消息队列中。HTML5中新增了PostMessage,PostMessage可以实现跨文档消息传输(Cross Document Messaging),Internet Explorer8、Firefox3、Opera9、Chrome3和Safari4等浏览器都支持PostMessage。因此可以通过绑定window的PostMessage事件来监听跨文档消息传输。
由于同源策略的限制,JavaScript跨域的问题一直是一个颇为棘手的问题。HTML5提供了在网页文档之间互相接收与发送信息的功能。使用这个功能,只要获取到网页所在窗口对象的实例,不仅同源(域+端口号)的Web网页之间可以互相通信,甚至可以实现跨域通信。
要想接收从其他窗口发送来的信息,必须对窗口对象的onmessage事件进行监听,这些其它窗口可以通过PostMessage方法来传递数据。该方法使用两个参数:第一个参数为所发送的消息文本,但也可以是任何JavaScript对象(通过JSON转换对象为文本),第二个参数为接收消息的对象窗口的URL地址,可以在URL地址字符串中使用通配符'*'指定全部地址。
其中,在本发明其他实施例中,步骤S100前还可以包括:
绑定Message事件以监听第一页面所在域的服务器发送的PostMessage消息;
进一步,S100可以包括:当监听到所述第一页面所在域的服务器通过所述第一PostMessage发送第一消息时,接收所述第一消息。
S200、根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理;
具体的,在本发明中的第一消息为JSON字符串时,S200可以包括:
将所述第一消息转换为第一对象,所述第一对象中携带有所述第一传输数据和所述第一指令;
执行所述第一对象中的所述第一指令,以使用所述第一传输数据进行第一处理。
其中,JSON字符串可以通过以下三种方式转换为对象:
方式一、eval方式解析,如下:
function strToJson(str){
var json=eval('('+str+')');
return json;
}
方式二、new Function形式,如下:
function strToJson(str){
var json=(new Function("return"+str))();
return json;
}
方式三、使用全局的JSON对象,如下:
function strToJSON(str){
return JSON.parse(str);
}
在所述第一页面为父页面,所述第二页面为所述父页面内的框架页时,图1所示方法还可以包括:
接收用户针对所述第二页面的配置修改指示;
根据所述配置修改指示,通过第四PostMessage向第一页面所在域的服务器发送第四消息,所述第四消息中携带有与所述配置修改指示对应的第二指令和执行所述第二指令需要使用的配置修改数据,以使所述第一页面所在域的服务器根据所述第四消息执行所述第二指令,使用所述配置修改数据进行配置修改处理。
当用户在框架页内进行配置修改时,该框架页所在域的服务器就可以将用户的配置修改指示发送到父页面所在域的服务器,以使父页面进行相应的配置修改。通过上述方案,第二页面所在域的服务器不仅可以接收其他页面所在域的服务器发送的消息,也可以向其他页面所在域的服务器发送消息,也即:第二页面所在域的服务器可以同时具有消息接收和消息发送功能。这样,第二页面所在域的服务器不仅可以成为用户指令的接收方和执行方,也可以成为用户指令的转发方。
具体的,所述配置修改指示可以用于指示进行头像修改;
所述第二指令可以为头像修改指令;
所述配置修改数据可以为修改后的头像数据。
举例说明,如图2所示,父页面01为整个页面所在的区域,该父页面01中有两个框架页,分别为框架页02和框架页03。可以看出,框架页02和框架页03覆盖了父页面01的大部分区域。父页面01为个人中心页面,当用户点击了父页面01内的修改头像菜单时,框架页02和框架页03则显示出来。当用户在框架页03内进行头像修改后,框架页03所在域的服务器就会向框架页02所在域的服务器和父页面01所在域的服务器发送字符串,使得框架页02和父页面01上的头像也会进行相应的修改。当然,不仅框架页可以向该框架页所在的父页面发送字符串,父页面也可以向该父页面内的框架页发送字符串。进一步,在本发明其他实施例中,同一父页面内的框架页之间也可以通过该父页面进行信息交互。
在本发明其他实施例中,所述第一消息中还携带有返回指令;
在S200后,图1所示方法还可以包括:
根据所述返回指令判断是否需要向所述第一页面所在域的服务器返回进行所述第一处理后的结果;
如果是,则通过第二PostMessage向所述第一页面所在域的服务器发送第二消息,所述第二消息中携带有所述第一处理后的结果。
仍使用举例一,可以看出,举例一中第二页面ucenter所在域的服务器可以根据第一传输数据new name执行第一指令rename对程序所约定的目标(假设该程序的重命名操作是针对唯一目标进行的,并且通讯双方已经进行过约定)进行重命名操作,重命名为new name,并将处理结果返回给第一页面portrait所在域的服务器。返回处理结果时使用的字符串可以为:
举例二:
{
"id":"2",
"source":"ucenter",
"destination":"portrait",
"command":"update",
"return":false,
"data":"result"
}
其中,2为该第二字符串的ID,ucenter为第二页面的名称,为第二字符串所携带的发送方信息source,portrait为第一页面的名称,为第二字符串所携带的接收方信息destination,update为第二指令,为第二字符串所携带的指令command,false为确认不返回结果,为第二字符串所携带的返回指令return,result为第二传输数据,为第二字符串所携带的数据date。可以看出,第二页面ucenter所在域的服务器通过ID为2的字符串向第一页面portrait所在域的服务器返回结果。
其中,返回的进行第一处理后的结果可以包括:处理成功或处理失败、字符串、数值、url等。
本发明实施例提供的一种跨域信息交互方法,可以使某页面所在域的服务器通过PostMessage向另一页面所在域的服务器发送携带有数据的消息。由于该消息所携带数据的类型较多,因此相对于使用URL的frag部分进行跨域信息交互的技术来说传输信息时受到的限制较小。同时,本发明所使用的消息所携带的数据量也较大,可以有效提高跨域信息交互的效率。
如图3所示,在本发明实施例提供的另一种跨域信息交互方法,由第二页面所在域的服务器执行,可以包括:
S100、接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据。
其中,所述第一页面为框架页,所述第二页面为该框架页的父页面。
S200、根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理。
S300、通过第三PostMessage向第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据,以使所述第三页面所在域的服务器执行所述第一指令,使用所述第一传输数据进行第一处理。
具体的,当本发明所使用的消息中携带有发送方信息和接收方信息时,S300中,可以通过对第一消息中携带的发送方信息和接收方信息进行修改以得到第三消息。具体的,可以将所述第一消息中的发送方信息修改为所述第二页面所在域的服务器的信息,将所述第一消息中的接收方信息修改为第三页面所在域的服务器的信息。
其中,所述第三页面可以为所述父页面内的其他框架页。
这样,就可以通过父页面实现了框架页和框架页之间的信息交互。
可以理解的是,当第三页面所在域的服务器需要将处理结果返回给第二页面所在域的服务器时,可以按照相同的方法再次通过父页面进行信息交互。
相应于本发明提供的上述方法实施例,如图4所示,本发明还提供了一种跨域信息交互装置,应用于第二页面所在域的服务器,该装置可以包括:消息接收单元100和指令执行单元200,
消息接收单元100,用于接收第一页面所在域的服务器通过第一PostMessage发送的第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
指令执行单元200,用于根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理;
其中,所述第一页面为父页面,所述第二页面为所述父页面内的框架页;或所述第一页面为框架页,所述第二页面为该框架页的父页面。
本发明实施例提供的一种跨域信息交互装置,可以使某页面所在域的服务器通过PostMessage向另一页面所在域的服务器发送携带有数据的消息。由于该消息所携带数据的类型较多,因此相对于使用URL的frag部分进行跨域信息交互的技术来说传输信息时受到的限制较小。同时,本发明所使用的消息所携带的数据量也较大,可以有效提高跨域信息交互的效率。
具体的,所述消息可被设置为JSON字符串;所述指令执行单元200可以包括:消息转换子单元和指令执行子单元,
消息转换子单元,用于将所述第一消息转换为第一对象,所述第一对象中携带有所述第一传输数据和所述第一指令;
指令执行子单元,用于执行所述第一对象中的所述第一指令,以使用所述第一传输数据进行第一处理。
在本发明另一实施例中,图4所示装置还可以包括:消息监听单元,用于在所述消息接收单元100接收第一页面所在域的服务器通过第一PostMessage发送的第一消息前,绑定Message事件以监听第一页面所在域的服务器发送的PostMessage消息;
所述消息接收单元100,具体用于:当所述消息监听单元监听到所述第一页面所在域的服务器通过所述第一PostMessage发送第一消息时,接收所述第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据。
在本发明另一实施例中,所述第一消息中还携带有返回指令;图4所示装置还可以包括:返回判断单元和消息返回单元,
所述返回判断单元,用于在所述指令执行单元200根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理后,根据所述返回指令判断是否需要向所述第一页面所在域的服务器返回进行所述第一处理后的结果,如果是,则触发所述消息返回单元;
所述消息返回单元,用于通过第二PostMessage向所述第一页面所在域的服务器发送第二消息,所述第二消息中携带有所述第一处理后的结果。
在所述第一页面为父页面,所述第二页面为所述父页面内的框架页时,在本发明另一实施例中,图4所示装置还可以包括:指示接收单元和指示传递单元,
所述指示接收单元,用于接收用户针对所述第二页面的配置修改指示;
所述指示传递单元,用于根据所述配置修改指示,通过第四PostMessage向第一页面所在域的服务器发送第四消息,所述第四消息中携带有与所述配置修改指示对应的第二指令和执行所述第二指令需要使用的配置修改数据,以使所述第一页面所在域的服务器根据所述第四消息执行所述第二指令,使用所述配置修改数据进行配置修改处理。
其中,所述配置修改指示用于指示进行头像修改;
所述第二指令为头像修改指令;
所述配置修改数据为修改后的头像数据。
在图4所示装置的基础上,如图5所示,在所述第一页面为框架页,所述第二页面为该框架页的父页面时,本发明实施例提供的另一种跨域信息交互装置,还可以包括:
消息发送单元300,用于通过第三PostMessage向第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据,以使所述第三页面所在域的服务器执行所述第一指令,使用所述第一传输数据进行第一处理。
本发明还提供了一种跨域信息交互系统,可以包括:第一页面所在域的服务器、第二页面所在域的服务器及第三页面所在域的服务器,所述第二页面为所述第一页面和所述第三页面的父页面;
所述第一页面所在域的服务器,用于通过第一PostMessage向所述第二面所在域的服务器发送第一消息,所述第一消息中携带有第一指令和执行所述第一指令需要使用的第一传输数据;
所述第二页面所在域的服务器,用于根据所述第一消息执行所述第一指令,以使用所述第一传输数据进行第一处理,所述第二页面所在域的服务器还用于通过第三PostMessage向所述第三页面所在域的服务器发送第三消息,所述第三消息中携带有所述第一指令和执行所述第一指令需要使用的第一传输数据;
所述第三页面所在域的服务器,用于执行所述第三消息中的第一指令,以使用所述第一传输数据进行第一处理。
其中,第一页面所在域的服务器、第二页面所在域的服务器及第三页面所在域的服务器的具体组成请参见前述实施例中的说明,这里不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。