论文部分内容阅读
ActiveX控件是基于COM的通用组件,开发人员可以使用它方便地构建图形用户界面并使用其提供的类来创建各种对象,并调用该对象的属性、方法和响应该对象的事件。然而,基于Mozilla开发的Firefox浏览器尚不能运行ActiveX控件,限制了其在Internet中的应用。要实现Firefox对ActiveX控件的支持,必须解决四个问题,包括如何创建和初始化控件对象,如何在Firefox浏览器中显示和现场激活控件,如何使JavaScript能访问控件的属性和方法以及如何捕获控件事件并将其转发给JavaScript。本文在研究ActiveX控件运行机制和Firefox浏览器各种功能扩展手段的基础上,设计实现了npActiveX插件,解决了上述问题。在分析了创建控件的时机和方式后,通过HTML标签属性指定控件的创建和初始化信息。在研究了插件原理和OLE2.0容器部分的基础上,在npActiveX插件中实现了容器所需的各个接口及其方法,使容器与控件能正常交互,完成控件的显示和现场激活。通过XPCOM技术完成了JavaScript对npActiveX插件的访问,进而间接访问控件属性和方法。在研究控件事件机制的基础上完成了npActiveX插件对控件事件的捕获,并使用Mozilla平台提供的XPCOM接口将捕获到的事件转发给JavaScript。为提高操作系统的安全性,设计实现了ActiveXManager扩展。用户可在Firefox中使用该扩展查看已支持的控件及所有控件的CLSID、ProgId、版本号和安装路径,并指定要支持或禁用的控件。该扩展的界面采用XUL进行开发,底层功能由JavaScript和XPCOM组件实现。并使用Overlay技术制作了扩展安装包,将扩展集成在Firefox中。在WindowsXP操作系统下,使用Firefox浏览变电所工程组态画面,得到了较好的运行效果。使用组态画面对Firefox3.0和IE7.0的内存和CPU使用情况进行测试,比较、归纳了测试结果,分析得出在打开一定数目页面的情况下,Firefox3.0与IE7.0在系统资源使用情况方面相当,随着打开页面的增多,Firefox3.0的内存占用增长幅度小于IE7.0。