网页脚本与浏览器程序之间的交互方法、装置及系统的制作方法

文档序号:6402977阅读:293来源:国知局
专利名称:网页脚本与浏览器程序之间的交互方法、装置及系统的制作方法
技术领域
本发明涉及计算机网络领域,具体涉及一种网页脚本与浏览器程序之间的交互方法、装置及系统。
背景技术
脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。网页脚本和教程脚本通常可以由应用程序临时调用并执行,在本发明中提到的脚本主要是指网页脚本。由于网页脚本不仅可以减小网页的规模和提高网页的浏览速度,而且可以丰富网页的表现,如动画、声音等,因此,各类网页脚本目前被广泛地应用于网页设计中。例如,当用户通过浏览器点击网页上的E-maiI地址时能自动调用OutlookExpress或FoxmaiI这类邮件软件的功能就是通过网页脚本来实现的。具体地,为了实现上述过程,通常在浏览器 上还安装有专门用于实现特定功能的浏览器插件,因此,当用户通过浏览器打开网页时,首先由浏览器及浏览器上安装的插件调用网页脚本,然后,对于网页的具体操作则由网页脚本来完成,而网页脚本在对网页进行操作之后还需要将操作结果汇报给浏览器。由此可见,在上述过程中,需要网页脚本与浏览器及浏览器上安装的插件之间进行交互。也就是说,在上述过程中,不仅浏览器及浏览器上安装的插件要调用网页脚本,而且网页脚本也要调用浏览器及浏览器上安装的插件。一般而言,浏览器及浏览器上安装的插件可以非常简便地调用网页脚本,然而,网页脚本要调用浏览器及浏览器上安装的插件却很不方便。具体原因在于,网页脚本在调用浏览器及浏览器上安装的插件时的具体调用方式根据浏览器的内核类型而有所不同:针对IE内核的浏览器,需要通过external接口来进行调用;而针对Chrome内核的浏览器,需要通过不同于external接口的另一种API接口来进行调用。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网页脚本与浏览器程序之间的交互方法、装置及系统。依据本发明的一个方面,提供了一种网页脚本与浏览器程序之间的交互方法,包括:通过预设的统一接口接收网页脚本发送的针对浏览器程序的调用请求;确定浏览器程序对应的内核类型,根据内核类型,确定与该内核类型相应的调用接口 ;通过调用接口对浏览器程序进行调用。可选地,该方法还包括:接收浏览器程序返回的调用结果,并将调用结果传送给网页脚本。可选地,通过异步调用方式调用浏览器程序。可选地,通过异步调用方式调用浏览器程序包括:浏览器程序通过预设的回调函数或触发事件返回调用结果。
可选地,预设的统一接口包括一组导出函数或接口函数。可选地,浏览器程序对应的内核类型包括IE类型和Chrome类型,当浏览器程序对应的内核类型为IE类型时,与该内核类型相应的调用接口为external接口 ;当浏览器程序对应的内核类型为Chrome类型时,与该内核类型相应的调用接口为API接口。可选地,浏览器程序包括:浏览器对应的程序,和/或浏览器的插件对应的程序。根据本发明的另一方面,提供了网页脚本与浏览器程序之间的交互装置,包括:接收模块,适于通过预设的统一接口接收网页脚本发送的针对浏览器程序的调用请求;确定模块,适于确定浏览器程序对应的内核类型,根据内核类型,确定与该内核类型相应的调用接口 ;调用模块,适于通过调用接口对浏览器程序进行调用。可选地,接收模块还适于接收浏览器程序返回的调用结果,并将调用结果传送给网页脚本。可选地,接收模块通过异步调用方式调用浏览器程序。可选地,接收模块通过异步调用方式调用浏览器程序包括:浏览器程序通过预设的回调函数或触发事件返回调用结果。可选地,预设的统一接口包括一组导出函数或接口函数。可选地,浏览器程序对应的内核类型包括IE类型和Chrome类型,当浏览器程序对应的内核类型为IE类型时,与该内核类型相应的调用接口为external接口 ;当浏览器程序对应的内核类型为Chrome类型时,与该内核类型相应的调用接口为API接口。可选地,浏览器程序包括:浏览器对应的程序,和/或浏览器的插件对应的程序。

可选地,装置集成为一个独立的功能模块。 可选地,装置为动态链接库或代码段。可选地,装置集成在浏览器程序中。根据本发明的另一方面,提供了一种网页脚本与浏览器程序之间的交互系统,包括:网页脚本、浏览器程序、以及上述的交互装置。根据本发明的网页脚本与浏览器程序之间的交互方法、装置及系统,可以通过预设的统一接口来接收网页脚本针对浏览器程序的调用请求,因此在网页脚本调用浏览器程序时,无需考虑浏览器的内核类型,只要将调用请求发送给该统一接口即可。由此解决了现有技术中的网页脚本在调用浏览器程序时由于需要区分内核类型所导致的操作繁琐的问题,取得了能够对于不同内核类型的浏览器进行统一调用,从而简化调用流程的有益效果。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本发明实施例提供的网页脚本与浏览器程序之间的交互方法的流程图2示出了本发明实施例提供的网页脚本与浏览器程序之间的交互装置的结构图;以及图3示出了本发明实施例提供的网页脚本与浏览器程序之间的交互系统的结构图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本发明实施例提供了一种网页脚本与浏览器程序之间的交互方法、装置及系统,用以解决目前网页脚本调用浏览器程序时由于需要区分内核类型所导致的操作繁琐的问题。图1示出了本发明实施例提供的网页脚本与浏览器程序之间的交互方法的流程图。在下文的描述中,该方法的执行主体例如可以是一个集成的独立的功能模块。该功能模块例如可以是动态链接库或类库(即dll),或者是代码段等。该功能模块可嵌入到浏览器程序中(即由浏览器程序来加载该功能模块),,或者,该功能模块也可以作为一个独立于浏览器程序和网页脚本的中间模块。如图1所示,该方法始于步骤S110。在步骤SllO中,通过预设的统一接口接收网页脚本发送的针对浏览器程序的调用请求。其中,网页脚本包括通过各种脚本语言所编写的各类脚本程序。预设的统一接口包括一组导出函数或接口函数。具体地,当执行该方法的功能模块为动态链接库或类库时,该统一接口通常为一组导出函数;当执行该方法的功能模块为代码段时,该统一 接口通常为一组接口函数。通过步骤S110,由统一接口接收到上述的网页脚本对浏览器程序的调用请求之后,在步骤S120中,确定浏览器程序对应的内核类型,根据确定出的内核类型,进一步确定与该内核类型相应的调用接口。其中,浏览器程序对应的内核类型包括IE类型和Chrome类型,当浏览器程序对应的内核类型为IE类型时,与该内核类型相应的调用接口为external接口;当浏览器程序对应的内核类型为Chrome类型时,与该内核类型相应的调用接口为API 接口。通过步骤S120确定出相应的调用接口之后,在步骤S130中,通过该调用接口(例如上述的external接口或API接口)对浏览器程序进行调用。进一步地,在步骤S130之后还可以包括步骤S140。在有调用结果返回的情况下,在步骤S140中,接收浏览器程序返回的调用结果,并将该调用结果传送给该网页脚本,由此完成网页脚本和浏览器程序之间的一次交互。本领域技术人员可以了解,这种返回结果不一定是必须的。具体地,在通过步骤S130和步骤S140实现网页脚本和浏览器程序的交互时,可通过异步调用的方式实现网页脚本对浏览器程序的调用。也就是说,当通过步骤S130对浏览器程序进行调用之后,调用方(执行步骤S130中的调用操作的功能模块)不等被调方(浏览器程序)返回调用结果,就直接执行后续的其他操作,当浏览器程序返回调用结果时,调用方再接收该调用结果。
与常规的同步调用方式相比,异步调用方式具有如下优势:在同步调用方式中,当浏览器程序被网页脚本调用之后,往往需要一段时间后才能响应(即返回调用结果),而网页脚本在浏览器程序响应之前的这段时间内也无法进行后续的其他操作,只能等到浏览器程序响应之后才能执行后续操作,由此浪费大量的时间。而异步调用方式则不然,当网页脚本调用浏览器程序之后,无需停在原地等待浏览器程序响应,因此,网页脚本在这段时间内可以继续执行其他操作,等到浏览器程序返回调用结果时再接收该调用结果并进行处理即可。为了实现上述异步调用的方式,就需要一种能够在被调方返回调用结果时通知调用方的机制。例如,可以通过预设的回调函数、触发事件和/或响应消息等多种方式来实现这一机制。具体地,如果通过预设的回调函数来实现异步调用,则调用方在调用该预设的回调函数时,在回调函数的参数中设置一个用于接收被调方返回的调用结果的函数地址(也叫指针),因此,回调函数在被调方返回调用结果时能够直接通过该函数地址获取到调用结果并通知给调用方。如果通过预设的触发事件来实现异步调用,则需要把回调函数包装到一个对象中,然后用事件(event)来取代其中的函数地址,并在被调方返回调用结果时通过事件处理例程向调用方发出通知。在本发明实施例提供的交互方法中,可以通过预设的统一接口来接收网页脚本针对浏览器程序的调用请求,因此在网页脚本调用浏览器程序时,无需考虑浏览器的内核类型,只要将调用请求发送给该统一接口即可。由此解决了现有技术中的网页脚本在调用浏览器程序时由于需要区·分内核类型所导致的操作繁琐的问题,取得了能够对于不同内核类型的浏览器进行统一调用,从而简化调用流程的有益效果。另外,由于在本发明实施例中,网页脚本可以通过异步调用方式来调用浏览器程序,因此,减少了等待时间,提高了调用效率。另外,在本发明实施例中提到的浏览器程序包括:浏览器对应的程序,和/或该浏览器上安装的插件所对应的程序。也就是说,在本发明实施例中,网页脚本既可以调用浏览器对应的程序,也可以调用浏览器上安装的插件所对应的程序。下面以两个具体示例详细介绍一下网页脚本调用浏览器对应的程序以及网页脚本调用浏览器上安装的插件所对应的程序时的实现细节。示例一、在本示例中,以网页脚本调用浏览器对应的程序为例进行说明。其中,网页脚本为JS脚本,其调用浏览器的主要目的在于获取浏览器的版本信息,并通过脚本弹窗显示该版本信息。由于浏览器的版本信息与浏览器的内核类型之间存在着一定的对应关系,因此,通过该版本信息就可以判断出浏览器的内核类型。如果判断出的内核类型为IE类型,则在后续过程中通过external接口进行调用;如果判断出的内核类型为Chrome类型,则在后续过程中通过API接口进行调用。为了实现JS脚本调用浏览器并获取浏览器版本信息的过程,首先需要由JS脚本中的GetBrowserVersion函数调用浏览器中的GetVersion方法(C++方法)。然后,浏览器在GetVersion方法执行完以后,回调JS脚本中的CallBack方法以便返回调用结果。其中,JS脚本中的GetBrowserVersion函数调用浏览器的GetVersion方法的实现代码如下:
function GetBrovvserVersion() }
var sid = externa!^\vGeiSecuritylD( window); external.AppCmd(sid, "360SE", "GetVersion", Ca]I Back);
}通过上述代码可以看出,JS脚本通过本发明实施例中的功能模块(例如类库)所提供的统一接口函数(external.AppCmd )来调用浏览器程序的GetVersion方法。其中,统一接口函数external.AppCmd有四个参数:第一个参数“sid”为安全id ;第二个参数“360SE”表示要调用的是浏览器;第三个参数“GetVersion”表示要调用的浏览器的方法(C++方法),该方法用于获取浏览器的版本信息;第四个、第五个参数是额外附加参数,此处不需要;第六个参数“CallBack”为JS脚本的回调函数,当GetVersion这一方法执行完毕后,回调该“CallBack”函数即可向JS脚本返回调用结果。浏览器程序接收到上述JS脚本通过统一接口函数external.AppCmd发来的调用
请求后,通过以下代码进行处理并返回调用结果:

void Sidcail Jixlera iMsg(HJ rRA M1-J hFmme, H BROWSER hBrowser, in!nlnvokki, LPCTSTR sIrTUie’ LPCSTR sin JH,LlK STR slrFunciionNamc, LPCSTRslrParaml, LPCSTR slrParaml)
{
//判断函数名称是不是GetVersion
if (strFunctionName && strcmp(slrFunctionName, "Get Version ") == 0)
{
if获得浏览器版本,保存在strValue中获得浏览器版本信息以后,执行以下语句,将版本信息作为调用结果回传给JS脚本,其中,通过strValue变量中的值来表示调用结果。

_Hwwser.ResponselixieiisionAppi 'mdihlramc, hBrowser, nlnvokld, I,Vl 'I'HEncodefstrValue.c_str()).c_str()); // 对strValue 进行 UTF8 编码
}
}执行完上述C++程序后,将回调脚本中的CallBack函数,在上述C++程序中传递的strValue也就是下面参数中的msg。其中,CallBack函数的具体代码如下:

权利要求
1.一种网页脚本与浏览器程序之间的交互方法,包括: 通过预设的统一接口接收所述网页脚本发送的针对所述浏览器程序的调用请求; 确定所述浏览器程序对应的内核类型,根据所述内核类型,确定与该内核类型相应的调用接口 ; 通过所述调用接口对所述浏览器程序进行调用。
2.如权利要求1所述的方法,还包括:接收所述浏览器程序返回的调用结果,并将所述调用结果传送给所述网页脚本。
3.如权利要求2所述的方法,其中,通过异步调用方式调用所述浏览器程序。
4.如权利要求3所述的方法,所述通过异步调用方式调用所述浏览器程序包括:所述浏览器程序通过预设的回调函数或触发事件返回调用结果。
5.如权利要求1-4中任一项所述的方法,所述预设的统一接口包括一组导出函数或接口函数。
6.如权利要求1-5中任一项所述的方法,所述浏览器程序对应的内核类型包括IE类型和Chrome类型,当所述浏览器程序对应的内核类型为IE类型时,所述与该内核类型相应的调用接口为external接口 ;当所述浏览器程序对应的内核类型为Chrome类型时,所述与该内核类型相应的调用接口为API接口。
7.如权利要求1-6中任一项所述的方法,所述浏览器程序包括:浏览器对应的程序,和/或所述浏览器的插件对应的程序。
8.—种网页脚本与浏览 器程序之间的交互装置,包括: 接收模块,适于通过预设的统一接口接收所述网页脚本发送的针对所述浏览器程序的调用请求; 确定模块,适于确定所述浏览器程序对应的内核类型,根据所述内核类型,确定与该内核类型相应的调用接口; 调用模块,适于通过所述调用接口对所述浏览器程序进行调用。
9.如权利要求8所述的装置,所述接收模块还适于接收所述浏览器程序返回的调用结果,并将所述调用结果传送给所述网页脚本。
10.一种网页脚本与浏览器程序之间的交互系统,包括:网页脚本、浏览器程序、以及上述权利要求8至9任一项所述的交互装置。
全文摘要
本发明涉及计算机网络领域,其公开了一种网页脚本与浏览器程序之间的交互方法、装置及系统。该交互方法包括通过预设的统一接口接收网页脚本发送的针对浏览器程序的调用请求;确定浏览器程序对应的内核类型,根据内核类型,确定与该内核类型相应的调用接口;通过调用接口对浏览器程序进行调用。由此解决了现有技术中的网页脚本在调用浏览器程序时由于需要区分内核类型所导致的操作繁琐的问题,取得了能够对于不同内核类型的浏览器进行统一调用,从而简化调用流程的有益效果。
文档编号G06F9/44GK103226474SQ201310172308
公开日2013年7月31日 申请日期2013年5月10日 优先权日2013年5月10日
发明者段培堃, 杭程, 任寰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有2条留言
  • 访客 来自[中国] 2023年02月01日 18:19
    qq
    0
  • 访客 来自[中国] 2023年02月01日 18:18
    s
    0
1