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 (文档对象模型 ...
【技术保护点】
一种扩展浏览器功能的方法,包括: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.一种浏览器系统,包括脚本引擎模块和脚本代理模块,其特征在于,所述脚本引擎模块包括: 解析单元,用于解析页面脚本; 检测单元,用于在所述解析...
【专利技术属性】
技术研发人员:唐虹刚,黎科峰,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。