买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:江西金格科技股份有限公司
摘要:本发明公开了一种Chrome浏览器加载ActiveX控件的方法,当网页位置信息改变而引起接口对象变换位置信息的时候,判断ActiveX对象是否创建;根据ActiveX对象的属性和方法返回值来确定,如果返回值是IDispatch类型则创建ScriptObject脚本对象,并返回给浏览器;浏览器执行有关于ActiveX对象的属性和方法的JavaScript脚本时,根据ScriptObject实例上的ScriptObject接口参数来查找ActiveX对象应该执行的属性或方法调用,然后执行对应的属性和方法调用。接口简单,易于集成到应用系统。
主权项:1.一种Chrome浏览器加载ActiveX控件的方法,包括:PPAPI插件程序和实例化的InstancePrivate接口对象,以及由该接口对象控制ActiveX对象的创建、显示状态和位置信息,ScriptObject脚本对象到ActiveX的代理,并由ActiveX对象的代理提供ActvieX的方法和属性访问;其特征在于,当网页位置信息改变而引起所述接口对象变换位置信息的时候,判断ActiveX对象是否创建,如果未创建则创建ActiveX对象;如果已创建则忽略;一个InstancePrivate实例只对应一个ActiveX对象;根据接口InstancePrivate接口参数变换ActiveX对象的显示和隐藏,以及ActiveX对象的位置;根据ActiveX对象的属性和方法返回值来确定,如果返回值是IDispatch类型则创建ScriptObject脚本对象,并返回给浏览器;根据ScriptObject实例上的ScriptObject接口参数来查找ActiveX对象应该执行的属性或方法调用,然后执行对应的属性和方法调用。
全文数据:一种浏览器加载ActiveX控件的方法技术领域本发明涉及浏览器控件技术,尤其涉及一种浏览器加载ActiveX控件的方法。背景技术术语解释:ActiveX控件:Microsoft公司对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM),与本文中的ActiveX、控件等名词等同含义。Chrome浏览器:一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面软件。ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页。我们常用的IE浏览器就是典型的ActiveX容器,它可以浏览和使用WEB网页中嵌入的ActiveX控件。Chrome浏览器本身不是ActiveX容器,它不能直接浏览WEB网页里的ActiveX控件。因此,Chrome使用网景插件应用程序接口NPAPI(NetscapePluginApplicationProgrammingInterface)作为浏览器插件加载ActiveX。出于对安全性的考虑,因为NPAPI的插件可以有窃取系统底层权限,发起恶意攻击。所以2010年,Chrome在原有网景NPAPI基础上开发了新的PPAPIPepperPluginAPI,将外挂插件全部放到沙盒里运行,并且在Chrome45及后续版本停止对PPAPI接口的支持。但这样同时也封闭了所有ActiveX控件在Chrome里的加载接口,一些被信任的ActiveX控件也被Chrome拒之门外。Chrome浏览器停止对NPAPI接口的支持,这意味着大量传统可信任的中间件产品将不再被新版Chrome浏览器支持。发明内容本发明提供一种通用的在Chrome45及后续版本里加载ActiveX的解决方案,使PPAPI插件程序为Chrome浏览器和可信任的ActiveX之间搭起一座桥梁,使得Chrome浏览器能像IE浏览器使用ActiveX一样,通过JavaScript创建和使用ActvieX。本发明采用以下技术方案实现上述目的。一种Chrome浏览器加载ActiveX控件的方法,包括:PPAPI插件程序和实例化的InstancePrivate接口对象,以及由该接口对象控制ActiveX对象的创建、显示状态和位置信息,ScriptObject脚本对象到ActiveX的代理,并由ActiveX对象的代理提供ActvieX的方法和属性访问;当网页位置信息改变而引起所述接口对象变换位置信息的时候,判断ActiveX对象是否创建,如果未创建则创建ActiveX对象;如果已创建则忽略;一个InstancePrivate实例只对应一个ActiveX对象;根据接口InstancePrivate接口参数变换ActiveX对象的显示和隐藏,以及ActiveX对象的位置;根据ActiveX对象的属性和方法返回值来确定,如果返回值是IDispatch类型则创建ScriptObject脚本对象,并返回给浏览器;根据ScriptObject实例上的ScriptObject接口参数来查找ActiveX对象应该执行的属性或方法调用,然后执行对应的属性和方法调用。本发明中ChromePPAPI插件加载ActiveX主要要实现控件的创建、调用接口上的属性和方法以及事件响应三部分。创建ActiveX是基于CLSID创建,因此这是一种通用的适用于所有ActiveX的创建方式。在创建ActiveX之后,ChromePPAPI插件有接口代理模块,使用ActiveX的IDispath自动化接口为WEB网页的脚本程序调用ActiveX的属性和方法提供代理服务。如果ActiveX在使用中会抛出事件,ChromePPAPI插件会为此事件查找并调用WEB网页上的脚本响应程序。本发明通过在Chrome浏览器中创建PPAPI插件,由PPAPI插件创建ActiveX控件,并通过PPAPI插件代理,实现了Chrome使用JavaScript代码调用ActiveX的属性和方法;通过PPAPI插件代理,Chrome使用JavaScript代码响应ActiveX的事件。能够支持创建所有ActiveX;能够支持WEB网页脚本调用ActiveX的属性和方法;能够支持WEB网页脚本响应ActiveX的事件;接口简单,易于集成到应用系统。在Chrome浏览器加载并使用ActiveX的方式;相对于NPAPI插件只使用于Chrome浏览器45以下版本,适用于所有Chrome浏览器版本;对ActiveX的属性和方法调用在语法上保持跟IE浏览器里的一致;只需变换CLSID,即可适用于所有ActiveX。附图说明图1是本发明的系统结构框图。图2是Chrome浏览器和InstancePrivate关系图;图3是Chrome浏览器和ScriptObject对象关系图;图4是ScriptObject对象代理ActiveX对象流程图;图5是Chrome浏览器对ActiveX的事件响应关系图。具体实施方式以下结合附图和实施例对本发明的技术方案作详细说明。本发明所采用的方案是:Chrome浏览器通过JavaScript把使用ActiveX的意图告知PPAPI插件,PPAPI插件作为代理,创建ActiveX、调用ActiveX属性和方法以及响应ActiveX事件。参见图1系统结构框图。Chrome浏览器通过加载ActiveX方式把ActiveX的创建、调用和事件响应封装在PPAPI插件里。PPAPI插件作为Chrome浏览器和ActiveX之间的代理。PPAPI插件会提供一个InstancePrivate实例给Chrome浏览器,Chrome浏览器通过这个实例控制PPAPI插件的位置和显示状态等信息,另外Chrome浏览器会对InstancePrivate实例对象的生存周期进行管理。在InstancePrivate实例对象的生存周期内会创建一个脚本化对象(ScriptObject),此脚本化对象会创建ActiveX对象,最后PPAPI插件把这个脚本化对象返回给Chrome浏览器。此后,Chrome浏览器的JavsScript引擎可以通过WEB脚本操作这个脚本化对象,实际上,Chrome浏览器通过这个脚本化对象的代理来操作ActiveX对象,例如调用属性方法,响应事件等。参见图2和图3。ScriptObject实例作为Chrome浏览器和ActiveX对象之间的代理,把浏览器对ScriptObject的属性和方法的操作转换为对ActiveX的属性和方法的操作。参见图4。ScriptObject对象作为Chrome浏览器对ActiveX对象的访问代理是本发明的核心。ScriptObject作为ActiveX对象的代理,在Chrome浏览器看来,ScriptObject就是ActiveX,对ActiveX的属性和方法的JavaScript语句调用,就是对ScriptObject的JavaScript语句调用。例如,ActiveX对象有名字为prop的属性,那么根据JavaScript对象访问语法,给prop赋值的语句应该是“activexObject.prop=1;”activexObject是ActiveX对象的实例,而作为代理的ScriptObject对象也应该支持相同的语法,“activexObject.prop=1;”,但此时activeObject是ScriptObject对象的实例。那么,从ScriptObject对象到ActiveX对象之间的转换是本发明的核心之一。参见图5。ActiveX控件的事件让控件可以向包含它的容器,即Chrome浏览器中的网页发送事件通知,网页收到事件通知后调用网页脚本里的事件处理函数,网页应用程序可以实现事件处理函数对具体的事件作出具体的响应。网页脚本和ActiveX事件之间的联系通过InstancePrivate对象来建立,InstancePrivate对象一边接受ActiveX事件,另一边拥有网页脚本的Window对象,通过网页脚本的Window即可调用网页脚本中的事件响应函数。Chrome浏览器ActiveX插件系统。虽然因为安全性的原因,Chrome浏览器,特别是45版本以后,已经全面禁止使用ActiveX,但由于历史的原因,仍然有很多可以信任的ActiveX应该在Chrome浏览器上得到支持。Chrome浏览器ActiveX插件系统可以让ActiveX在Chrome浏览器的网页里使用,并且保持跟以前在IE里一样的使用风格。
权利要求:1.一种Chrome浏览器加载ActiveX控件的方法,包括:PPAPI插件程序和实例化的InstancePrivate接口对象,以及由该接口对象控制ActiveX对象的创建、显示状态和位置信息,ScriptObject脚本对象到ActiveX的代理,并由ActiveX对象的代理提供ActvieX的方法和属性访问;其特征在于,当网页位置信息改变而引起所述接口对象变换位置信息的时候,判断ActiveX对象是否创建,如果未创建则创建ActiveX对象;如果已创建则忽略;一个InstancePrivate实例只对应一个ActiveX对象;根据接口InstancePrivate接口参数变换ActiveX对象的显示和隐藏,以及ActiveX对象的位置;根据ActiveX对象的属性和方法返回值来确定,如果返回值是IDispatch类型则创建ScriptObject脚本对象,并返回给浏览器;根据ScriptObject实例上的ScriptObject接口参数来查找ActiveX对象应该执行的属性或方法调用,然后执行对应的属性和方法调用。
百度查询: 江西金格科技股份有限公司 一种浏览器加载ActiveX控件的方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。