本发明涉及网页浏览器插件改造技术领域,特别涉及一种基于谷歌浏览器加载activex控件的解决方法。
背景技术:
googlechrome,又称谷歌浏览器,是一个由google(谷歌)公司开发的网页浏览器。该浏览器是基于其他开源软件所撰写,包括webkit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于称作chrome的网络浏览器图形使用者界面(gui)。软件的beta测试版本在2008年9月2日发布,提供50种语言版本,有windows、macosx、linux、android、以及ios版本提供下载。
在现如今的行业与应用场景中,googlechrome浏览器的应用越来越广泛。chrome以其反应迅速、便利插件繁多、兼容性强的特点,成为越来越多电脑用户的主选浏览器之一。据统计,2013年9月,chrome浏览器已达全球份额的43%,成为全球使用最广的浏览器。于是基于chrome浏览器的项目就逐渐多了起来,很多项目在实现的过程中或多或少的都使用了activex控件来实现某一种或者某几种功能。
activex控件是用于互联网的很小的程序,有时称为插件程序。它们会允许播放动画,或帮助执行任务,如在microsoftupdate安装安全更新,因此可以增强用户的浏览体验。也可以说,activex控件是microsoft的activex技术的一部分。activex控件是可以在应用程序和网络中计算机上重复使用的程序对象。创建它的主要技术是microsoft的activex技术,其中主要是组件对象模型(com)。activex控件可以以小程序下载装入网页,也可以用在一般的windows和macintosh应用程序环境中。
在实现中,activex控件是一个动态链接库(dll)模块,它包括在容器(包括com程序接口的应用程序)当中。这种可重复使用的组件技术可以加快开发速度和质量,windows95/nt应用程序开发程序如powerbuilder和access都利用了activex控件
但是在随着chrome逐渐放弃对npapi的支持之后,在chrome浏览器内加载activex等插件变的麻烦了许多。尤其是在chrome浏览器在45版本以后,完全停止了对npapi的支持,这使得一些之前的老项目在chrome浏览器升级更新之后,老的activex等控件再也无法在chrome浏览器页面中加载出来了。这样一来,需要加载activex控件的页面,显示效果与播放效果很差,使得使用人在查看到未加载的页面时,对系统的信任程度下降,系统实现相应功能的能力丧失。而且对于这些插件项目的改造除了面临着经费问题之外,浏览器内核的改变也会导致之前的工程基本要重写,既耗时又耗力。
为了满足新趋势下的技术要求,解决chrome浏览器支持第三方控件的问题,本发明提出了一种基于谷歌浏览器加载activex控件的解决方法。
技术实现要素:
本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于谷歌浏览器加载activex控件的解决方法。
本发明是通过如下技术方案实现的:
一种基于谷歌浏览器加载activex控件的解决方法,其特征在于:包括以下步骤:
第一步,利用html+css+javascript完成浏览器页面的开发,使用户得到在chrome浏览器中展示的页面雏形;
第二步,开发对应页面需要的activex控件,并将activex控件包装到mfc工程内;
第三步,使包装好的控件接收页面传递出的页面参数,继而实现chrome浏览器页面对第三方控件的同步控制。
所述第一步中,编写html+javascript+css页面代码完成浏览器页面的开发,并在该页面中预留加载activex控件的位置。
所述第二步中,利用c++语言完成对activex控件的开发,所述activex控件对外暴露接口,接口可供第三方程序调用。
所述第二步中,mfc工程自带内嵌ie内核的浏览器,javascript控件在该浏览器内加载。
所述第三步中,利用websocket协议,使包装好的控件可以接受页面传递出的页面参数,继而实现chrome浏览器页面对第三方控件的同步控制。
所述第三步中,通过websocket接口,由html和javascript页面发送参数,控件对外暴露接口接收页面参数。
所述页面参数用于控制activex控件的大小及位置,以及对应activex控件需要的参数,以实现对应的activex控件功能。
所述第三步中,通过websocket接口实时更新数据,实现activex控件在页面上的实时加载与更新,完美实现chrome浏览器页面加载第三方activex控件的功能。
本发明的有益效果是:该基于谷歌浏览器加载activex控件的解决方法,使对于老旧项目的支持改造仅限于对activex控件的改造,从而减轻了工程改造的难度,降低了工程改造的资源消耗。
附图说明
附图1为本发明基于谷歌浏览器加载activex控件的解决方法示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该基于谷歌浏览器加载activex控件的解决方法,包括以下步骤:
第一步,利用html+css+javascript完成浏览器页面的开发,使用户得到在chrome浏览器中展示的页面雏形;
第二步,开发对应页面需要的activex控件,并将activex控件包装到mfc工程内;
第三步,使包装好的控件接收页面传递出的页面参数,继而实现chrome浏览器页面对第三方控件的同步控制。
所述第一步中,编写html+javascript+css页面代码完成浏览器页面的开发,并在该页面中预留加载activex控件的位置。
所述第二步中,利用c++语言完成对activex控件的开发,所述activex控件对外暴露接口,接口可供第三方程序调用。
所述第二步中,mfc工程自带内嵌ie内核的浏览器,javascript控件在该浏览器内加载。
所述第三步中,利用websocket协议,使包装好的控件可以接受页面传递出的页面参数,继而实现chrome浏览器页面对第三方控件的同步控制。
所述第三步中,通过websocket接口,由html和javascript页面发送参数,控件对外暴露接口接收页面参数。
所述页面参数用于控制activex控件的大小及位置,以及对应activex控件需要的参数,以实现对应的activex控件功能。
所述第三步中,通过websocket接口实时更新数据,实现activex控件在页面上的实时加载与更新,完美实现chrome浏览器页面加载第三方activex控件的功能。
该基于谷歌浏览器加载activex控件的解决方法,是通过html+css+javascript页面与c++activex控件的有效结合,独辟蹊径,在chrome浏览器禁用npapi之后,实现chrome浏览器页面加载第三方控件的完美实现。具体实施过程如下:
一、首先实现chrome浏览器页面的开发,利用html+css+javascript技术,并且在此页面中预留加载activex控件的位置。
二、其次利用c++实现activex控件的开发,并且响应控件对外暴露相关接口(包括导出函数,调整位置、大小等接口),接口可供页面调用。
三、通过websocket接口,由html和javascript页面send参数,控件的相应接口receive参数(包括activex控件的大小,位置参数等)。
四、页面发送的参数不仅可以控制activex控件的大小位置,而且对应activex控件需要的参数也可以接收,以用来实现对应的控件功能。
五、通过websocket接口实时更新数据,实现activex控件在页面上的实时加载与更新,从而完美实现了chrome浏览器页面加载第三方activex控件的功能。
与现有技术相比,该基于谷歌浏览器加载activex控件的解决方法,具有以下特点:
第一、在chrome浏览器不支持npapi之后,完美地解决了chrome浏览器支持第三方控件的问题;
第二、该方案只需要控件与chrome浏览器页面配合,通过websocket通讯实现实时更新,即可方便快捷的实现之前在chrome浏览器支持npapi时实现的功能;
第三、该方案相较其他实现方案更加省时省力,实现效果与原页面(chrome浏览器支持npapi时的页面)效果一致,可以比较完美的实现了chrome浏览器加载activex控件的功能。
以上对本发明实例中的一种基于谷歌浏览器加载activex控件的解决方法进行了详细的介绍。本部分采用具体实例对发明的原理及实施方式进行了阐述,以上实例仅用于帮助理解本发明的核心思想,在不脱离本发明原理的情况下,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。