浏览器插件之ActiveX开发(一)

简介: 浏览器控件开发一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。 浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。本来在Netscape时代,对于浏览器插件是有公用的

浏览器控件开发

一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题。在有特殊需求(如涉及数据安全的金融业务数据交互、需插件才能实现的与本地设备的交互等)的情况下可以酌情慎用。

 浏览器插件总体可以划分为两大阵营,即IE支持的插件以及非IE支持的插件。本来在Netscape时代,对于浏览器插件是有公用的规范的(NPAPI),一开始所有浏览器都支持该规范,包括IE。后来出于商业原因,微软的IE不再支持NPAPI,改而自己开发了一套基于COM的ActiveX体系,但这个体系对于非IE浏览器是拒绝支持的。所以目前的状况基本是,IE浏览器仅支持ActiveX控件,而Firefox、Chrome等浏览器只支持另一类接口(XPCOM或NPAPI)。要想实现一个Web插件,至少需要同时考虑IE支持的AceiveX版以及非IE支持的Plugin版(Flash等插件对于IE与非IE浏览器都是不同的)。
 ActiveX的开发可以用C#、VB及C++等语言。用C++开发ActiveX既可以使用ATL,也可以使用MFC。ATL ActiveX输出文件较小,适合网络传输,但开发复杂度稍大;而MFC ActiveX输出文件稍大(附带必要的MFC dll),但易于上手。本文主要介绍基于MFC的ActiveX开发。

一、创建项目

1. 在VS2010中,新建一个MFC ActiveX Control项目:WebOffice

这里写图片描述

2. 点击 确定 后一路 下一步 直到 【控件设置】,设置后点击 完成

这里写图片描述

3. 右击项目名称,选择属性弹出项目属性页。

  • 修改配置属性->常规->MFC的使用为”在静态库中使用MFC”以便编译时将MFC相关库自动和控件一起打包。
    这里写图片描述

  • 修改配置属性->链接器->注册输出为”否”以便编译后不会自动注册插件。
    这里写图片描述

注意:创建MFC ActiveX Control时已经自动给项目添加了.def文件并做好了相应关联。若对配置信息更改后导致编译的ocx注册不成功或提示找不到EntryPoint,可以检查一下“链接器->输入->模块定义文件”是否配置正确,正常情况下已经自动配置好了,如下图:
这里写图片描述

二、在HTML中使用插件

经过上面的步骤,已经创建了一个最简单的ActiveX控件,接下来可以把这控件应用在HTML页面中查看效果

1. 在项目中打开项目名.idl 文件,拉到文件最下面,查找控件的classid。

这里写图片描述

2. 新建HTML文件 demo.html,把下面的代码复制到HTML文件中。

代码块语法遵循标准markdown代码,例如:

<object width="1300" height="768" id="WebOffice" classid="clsid:5884D1D2-022C-4D6E-9FDC-8AF539F09912">
    <param name="_ExtentX" value="6350" />
    <param name="_ExtentY" value="6350" />
</object>

3. 新建文件 weboffice.bat,把下面的代码复制进去并保存,用于注册插件。

regsvr32 WebOffice.ocx /s

4. 将文件weboffice.bat、demo.html、WebOffice.ocx复制到同一个目录中。

1. 双击 weboffice.bat注册插件
2. 用IE打开demo.html,可以看到插件的效果
目录
相关文章
|
4天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
11 0
|
16天前
|
开发者
查看edge浏览器插件的安装位置并将插件安装到别的浏览器
查看edge浏览器插件的安装位置并将插件安装到别的浏览器
26 1
|
2月前
|
Web App开发 JavaScript 前端开发
从零开始,轻松打造个人化Chrome浏览器插件
从零开始,轻松打造个人化Chrome浏览器插件
72 0
|
2月前
|
数据采集 Web App开发 JSON
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
本文以百度为实战案例演示使用WebScraper插件抓取页面内容保存到文件中。以及WebScraper用法【2月更文挑战第1天】
124 2
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
|
4月前
ElasticSearch-Head浏览器插件离线安装
ElasticSearch-Head浏览器插件离线安装
91 0
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
156 0
|
1月前
|
人工智能 搜索推荐 Linux
一个集 AI + 工具 + 插件 + 社区为一体的Arc 浏览器风格AI客户端
一个集 AI + 工具 + 插件 + 社区为一体的Arc 浏览器风格AI客户端
184 0
|
1月前
|
前端开发 JavaScript 程序员
推荐给前端程序员的5款浏览器插件
推荐给前端程序员的5款浏览器插件
|
1月前
|
Web App开发 JavaScript 前端开发
分析网站架构:浏览器插件
分析网站架构:浏览器插件
44 1
|
1月前
|
移动开发 JavaScript
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
微信公众号H5开发,在微信浏览器打开H5,无法一键下载图片
39 0

热门文章

最新文章