一种扩展浏览器功能的方法及浏览器系统技术方案

技术编号:9618125 阅读:153 留言:0更新日期:2014-01-30 05:51
本发明专利技术提供了一种扩展浏览器功能的方法及浏览器系统,其中该方法包括:A.浏览器的脚本引擎模块解析页面脚本,在解析过程中确定所述页面脚本中待创建的非原生脚本实例;B.所述脚本代理模块根据预设的插件描述文件中的映射关系创建Java类实例,并根据所述Java类实例创建所述待创建的非原生脚本实例;C.当所述脚本引擎模块在解析过程中调用已创建的非原生脚本实例时,触发所述脚本代理模块调用与所述已创建的非原生脚本实例对应的Java类实例。通过上述方式,能够实现一种新的浏览器插件机制,大大增加可用插件数量。

Method for extending browser function and browser system

The invention provides a method for expanding the capabilities of the browser and browser system, wherein the method comprises: the script engine module parses the A. browser page script, the script instance to determine the non native page script to be created in the process of analysis; the B. script proxy module according to preset plug-in description file in the mapping create an instance of the Java class, and according to the non primary instance of the Java script to create an instance of the C. to be created; when the script engine module in the parsing process called non native script instance is created when non-native script instance triggers the script proxy module calls and the corresponding Java has been created an instance of the class. By doing so, you can implement a new browser plug-in mechanism that greatly increases the number of plug-ins available.

【技术实现步骤摘要】
一种扩展浏览器功能的方法及浏览器系统
】本专利技术涉及浏览器插件实现技术,特别涉及一种扩展浏览器功能的方法及浏览器系统。【
技术介绍
】浏览器插件是对浏览器的功能进行扩展的应用。现有的浏览器插件实现技术(即对浏览器进行功能扩展的技术)主要包括以下三类:基于IE平台的ActiveX技术、可以跨浏览器平台的NPAPI技术以及在支持JAVA的浏览器上实现的Applet技术。下面对这三种浏览器插件实现技术进行相应的介绍。UActiveX是微软的WINDOWS平台上的专有技术。它使用C0M(Component ObjectModel,部件对象模型)技术,使得软件部件(即组件及组件的主控程序)在网络环境中可以进行交互。COM技术是一种跨应用和语言共享二进制代码的方法,定义了不同应用在二进制级别上进行交互的标准,由于ActiveX插件与浏览器满足这样的标准,因此ActiveX插件只要以DLL (Dynamic Link Library,动态链接库)的形式注册至注册表,就可以供浏览器调用。具体地,浏览器加载ActiveX插件的过程请参考图1和图2。图1为现有技术使用ActiveX插件时,网页源文件的编写范例示意图。从图1中可以看出,要使用ActiveX插件,在HTML文档中需要使用OBJECT标签进行标识,在该标签的属性中,还标识了 ActiveX插件在注册表中的⑶ID(Globally Unique Identifier,全球唯一标识符)。图2为现有技术的ActiveX插件的加载过程示意图。如图2所示,首先在浏览器加载HTML页面时,进行DOM (文档对象模型)转换,在这个过程中发现OBJECT标签,便会从注册表中查找如图1中的OBJECT标签属性中指定的⑶ID对应的ActiveX插件,以得到相应ActiveX插件的位置,根据该位置,浏览器就可以将对应的ActiveX插件加载到内存并运行,实现相应的功能。2、NPAPI是Netscape公司提出的一种浏览器插件技术。它是类似ActiveX的插件技术,但是它定义了一个跨浏览器的插件开发标准,满足NPAPI标准的浏览器插件能够在多种浏览器(如Firefox、Chrome、Safar1、Opera等)上被调用。常用的FLASH播放器、支付宝安全控件都是使用NPAPI技术开发的插件。请参考图3,图3为现有技术的NPAPI插件的加载过程的示意图。当浏览器启动时,加载默认路径下的插件类型的文件,并初始化插件环境(将各插件相应地注册到浏览器中),在初始化中,按照NPAPI的标准,插件和浏览器会分别调用对方提供的函数传递信息,同时浏览器获取插件中的信息,以将插件注册至浏览器中。页面加载时,在DOM解析的过程中发现如图4所示的标签,浏览器将判断注册插件中是否存在与图4所示的MimeType类型一致的插件,如果存在,则创建该插件的实例,以提供相应的功能实现浏览器功能的扩展。当页面销毁时,之前在页面上创建的插件实例相应也会被销毁,当浏览器关闭时,将退出插件环境。3、Applet是用Java语言编写的小应用程序作为插件的技术,这些程序直接嵌入到页面中,由支持Java的浏览器解释执行,从而实现扩展浏览器功能的目的。请参考图5,图5为现有技术使用Applet插件的页面源文件的示意图。对应着该页面,Applet的加载过程如下:浏览器加载页面,在进行DOM解析时发现Appplet标签,则在Applet标签定义的路径(X)下根据类名称(Y)找到相应的applet类,并使用Java虚拟机对该类进行解释执行,以实现该Applet的相应功能。由以上三种现有技术看,存在的问题是:(I)在ActiveX和NPAPI的方式下,开发浏览器插件均需要满足特定的通讯标准,这使得插件开发的难度加大,从而影响了可使用的插件数量;(2)以上三种方法均需要在待加载的页面源文件中用专门的标签进行标记,才能实现相应插件的调用;(3)以上三种方法在加载浏览器插件时,都需要为插件指定显示区域(可从各方法下对应的源文件标签中的“width ”和“height ”属性看出);【
技术实现思路
】本专利技术所要解决的技术问题是提供一种扩展浏览器功能的方法及浏览器系统,以实现一种新的浏览器插件机制,以解决现有技术中插件开发和使用复杂,并导致可用的插件数量少的缺陷。本专利技术为解决技术问题而采用的技术方案是提供一种扩展浏览器功能的方法,包括:A.浏览器的脚本引擎模块解析页面脚本,在解析过程中确定所述页面脚本中待创建的非原生脚本实例,并将所述待创建的非原生脚本实例的标识发送给浏览器的脚本代理模块所述脚本代理模块根据预设的插件描述文件中的映射关系创建与所述标识对应的Java类实例,并根据所述Java类实例创建所述待创建的非原生脚本实例;C.当所述脚本引擎模块在解析过程中调用已创建的非原生脚 本实例的方法时,触发所述脚本代理模块调用与所述已创建的非原生脚本实例对应的Java类实例的相应方法并将调用结果返回至所述脚本引擎模块。根据本专利技术之一优选实施例,确定所述页面脚本中待创建的非原生脚本实例的步骤具体包括:判断所述页面脚本中的引用所指对象在内存中是否存在,如果否,则确定该引用所指对象为待创建的非原生脚本实例;或者,通过所述页面脚本中表征创建动作的关键字确定待创建的脚本实例,并判断所述待创建的脚本实例所属类是否在所述页面脚本中被定义,如果否,则确定所述待创建的脚本实例为待创建的非原生脚本实例。根据本专利技术之一优选实施例,所述映射关系的属性包括:第一属性以及第二属性,其中所述第一属性用于描述非原生脚本实例的名称或非原生脚本实例所属类的名称,所述第二属性用于描述与所述第一属性对应的Java类的名称。根据本专利技术之一优选实施例,所述映射关系的属性还包括:第三属性,其中所述第三属性用于描述依据该映射关系产生的对象的有效期间。根据本专利技术之一优选实施例,所述第三属性的属性值包括:在一个页面加载至销毁期间有效的页面属性值、在一个浏览器加载至关闭期间有效的会话属性值、或与一个服务器交互期间有效的域属性值。根据本专利技术之一优选实施例,所述脚本代理模块创建所述Java类实例的步骤具体包括:所述脚本代理模块确定各映射关系中第一属性的属性值与所述标识相匹配的映射关系,并创建由该映射关系中第二属性的属性值指定的Java类的实例。根据本专利技术之一优选实施例,所述标识包括所述待创建的非原生脚本实例的名称,或者,所述待创建的非原生脚本实例所属类的名称。根据本专利技术之一优选实施例,根据所述Java类实例创建所述待创建的非原生脚本实例的步骤具体包括:根据所述Java类实例的属性和方法确定所述待创建的非原生脚本实例的定义,并根据该定义创建所述待创建的非原生脚本实例。根据本专利技术之一优选实施例,所述方法在所述步骤A前进一步包括:所述脚本代理模块确定所述插件描述文件中第三属性值为会话属性值的映射关系,并创建该映射关系指定的Java类实例及与该Java类实例对应的非原生脚本实例。根据本专利技术之一优选实施例,所述相应方法为与调用的非原生脚本实例的方法具有相同名称的方法。本专利技术还提供了一种浏览器系统,包括脚本引擎模块和脚本代理模块,其特征在于,所述脚本引擎模块包括:解析单元,用于解析页面脚本;检测单元本文档来自技高网
...
一种扩展浏览器功能的方法及浏览器系统

【技术保护点】
一种扩展浏览器功能的方法,包括:A.浏览器的脚本引擎模块解析页面脚本,在解析过程中确定所述页面脚本中待创建的非原生脚本实例,并将所述待创建的非原生脚本实例的标识发送给浏览器的脚本代理模块;B.所述脚本代理模块根据预设的插件描述文件中的映射关系创建与所述标识对应的Java类实例,并根据所述Java类实例创建所述待创建的非原生脚本实例;C.当所述脚本引擎模块在解析过程中调用已创建的非原生脚本实例的方法时,触发所述脚本代理模块调用与所述已创建的非原生脚本实例对应的Java类实例的相应方法并将调用结果返回至所述脚本引擎模块。

【技术特征摘要】
1.一种扩展浏览器功能的方法,包括: A.浏览器的脚本引擎模块解析页面脚本,在解析过程中确定所述页面脚本中待创建的非原生脚本实例,并将所述待创建的非原生脚本实例的标识发送给浏览器的脚本代理模块; B.所述脚本代理模块根据预设的插件描述文件中的映射关系创建与所述标识对应的Java类实例,并根据所述Java类实例创建所述待创建的非原生脚本实例; C.当所述脚本引擎模块在解析过程中调用已创建的非原生脚本实例的方法时,触发所述脚本代理模块调用与所述已创建的非原生脚本实例对应的Java类实例的相应方法并将调用结果返回至所述脚本引擎模块。2.根据权利要求1所述的方法,其特征在于,确定所述页面脚本中待创建的非原生脚本实例的步骤具体包括: 判断所述页面脚本中的引用所指对象在内存中是否存在,如果否,则确定该引用所指对象为待创建的非原生脚本实例;或者, 通过所述页面脚本中表征创建动作的关键字确定待创建的脚本实例,并判断所述待创建的脚本实例所属类是否在所述页面脚本中被定义,如果否,则确定所述待创建的脚本实例为待创建的非原生脚本实例。3.根据权利要求1所述的方法,其特征在于,所述映射关系的属性包括:第一属性以及第二属性,其中所述第一属性用于描述非原生脚本实例的名称或非原生脚本实例所属类的名称,所述第二属性用于描述与所述第一属性对应的Java类的名称。4.根据权利要求3所述的方法 ,其特征在于,所述映射关系的属性还包括:第三属性,其中所述第三属性用于描述依据该映射关系产生的对象的有效期间。5.根据权利要求4所述的方法,其特征在于,所述第三属性的属性值包括:在一个页面加载至销毁期间有效的页面属性值、在一个浏览器加载至关闭期间有效的会话属性值、或与一个服务器交互期间有效的域属性值。6.根据权利要求3所述的方法,其特征在于,所述脚本代理模块创建所述Java类实例的步骤具体包括: 所述脚本代理模块确定各映射关系中第一属性的属性值与所述标识相匹配的映射关系,并创建由该映射关系中第二属性的属性值指定的Java类的实例。7.根据权利要求1或6所述的方法,所述标识包括所述待创建的非原生脚本实例的名称,或者,所述待创建的非原生脚本实例所属类的名称。8.根据权利要求6所述的方法,其特征在于,根据所述Java类实例创建所述待创建的非原生脚本实例的步骤具体包括: 根据所述Java类实例的属性和方法确定所述待创建的非原生脚本实例的定义,并根据该定义创建所述待创建的非原生脚本实例。9.根据权利要求5所述的方法,其特征在于,所述方法在所述步骤A前进一步包括: 所述脚本代理模块确定所述插件描述文件中第三属性值为会话属性值的映射关系,并创建该映射关系指定的Java类实例及与该Java类实例对应的非原生脚本实例。10.根据权利要求1所述的方法,其特征在于,所述相应方法为与调用的非原生脚本实例的方法具有相同名称的方法。11.一种浏览器系统,包括脚本引擎模块和脚本代理模块,其特征在于,所述脚本引擎模块包括: 解析单元,用于解析页面脚本; 检测单元,用于在所述解析...

【专利技术属性】
技术研发人员:唐虹刚黎科峰
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

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

1