浏览器插件:B/S模式下通过在客户端浏览器安装插件调用外设或者处理特殊格式数据。
常用插件有身份证阅读器、sim卡阅读器、银行卡校验插件、手写板插件、小键盘插件;
处理表格数据的华表插件、图片合成插件、图片添加水印插件,发票打印插件;
1、插件原理
插件一般使用c/c++开发,通过插件中接口处理,返回一个js对象供页面调用处理:
本质上就是通过OCX封装了调用操作系统的接口,而这些接口又通过JS对象中方法直接暴露给给页面来调用;
要想知道具体提供了哪些接口可用:可以通过调试走到该ActiveXObject对象处,通过监视该对象变量获得该对象支持的属性和方法。
2、插件安装与注册
浏览器的ActiveX插件的设置采用默认设置:
如果某个页面中含有该插件的<Object>元素,且第一次进入该页面,在窗口上方会弹出一条信息,告知客户当前页面需要安装插件,点击安装并注册该插件,一般会在C:WindowsSystem32下生成该插件的ocx文件。
<object id="CardAccessor" classid="clsid:03AD53E8-D7E7-485D-A39A-D07B37DEFBC9" width="0" height="0"> </object>
注:对于操作本地文件Scripting.FileSystemObject,在windows随操作系统默认安装,不需要在页面定义<object>
3、页面调用
首先,创建这个插件对象
JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用。使用方法:
newObj = new ActiveXObject( servername.typename[, location])
ActiveXObject 对象语法有这些部分:
其中newObj是必选项。要赋值为 ActiveXObject 的变量名。
servername是必选项。提供该对象的应用程序的名称。
typename是必选项。要创建的对象的类型或类。
location是可选项。创建该对象的网络服务器的名称。
Automation服务器至少提供一类对象,例如字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。
然后调用这个对象中方法即可:newObj.xxxfun()
参考: