惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
量子位
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
J
Java Code Geeks
B
Blog
V
V2EX
博客园 - 三生石上(FineUI控件)
Blog — PlanetScale
Blog — PlanetScale
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
A
About on SuperTechFans
D
DataBreaches.Net
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
H
Help Net Security
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog

博客园 - Render

数据绑定表达与javascript字符串连用 - Render - 博客园 手工删除打印任务 burrow在某些项目使用中报"控件包含代码块(即 <% ... %>),因此无法修改控件集合" - Render httpModules remove does not work in a folder or virtual directory Javascript中文字符串处理额外注意事项 - Render - 博客园 Arc Catalog重建索引时报错:ORA-02298: 无法验证 (SDE.A18_FK1) - 未找到父项关键字 (A18_FK1) 指定web.config让httphandler处理某目录及子目录下所有文件 - Render - 博客园 windows命令行里取得年-月-日-时-分-秒的办法 - Render - 博客园 网站复杂信息自动录入处理 css中url的路径含义 ORACLE Transparent Gateway透明网关安装配置小问题 使用OLEDB访问ACCESS的几点经验 ARCIMS Serverlet Connector查询属性,当属性为中文时乱码处理 - Render [转载]ARCIMS 9.2 [ERR0134]错误解决方法 ORACLE 大数据表Update处理 PL/SQL developer的HomeEnd问题(转载) ArcSDE9.0对Oracle初始化参数的要求 在SDE中创建dataset时"Fail to Create, Cann't found spatial referrence entry"错 处理Oralce中非法的日期值
事件触发型ActiveX放置在网页中的部分思考
Render · 2009-11-18 · via 博客园 - Render

最近一B/S项目中频繁用到指纹扫描登记及比对功能。指纹相关功能早已成熟,相关硬件厂家也把扫描、比对等功能做成了ActiveX控件,要置入B/S系统中,也只要使用其提供的ActiveX控件就可以了。

我使用的是中控URU4000B,其提供了一ActiveX控件,biokey.ocx。这个控件有个特点,其功能实现是事件触发型的,如:在指纹登记时,先调用一个函数进入登记状态,之后如果有合格指纹按压动作,就会触发一个事件,告之指纹登记已经完成。且如果在一个窗口内有多个控件,只有其中一个控件实例会收到这个事件。

但实际的功能要求在一个页面内有多个人的指纹登记及比对,比如登记了产权人的还要登记共有人的。有些功能界面情况还是有Iframe,在Iframe里有指纹登记的,在Iframe容器外也要指纹登记。如果直接在页面内放置多个Object对象,或在每个页面里都放置一个Object对象,则按压指纹触发的事件完全不知道会反应到哪个页面的哪个控件上。因此实现上要求只能整个窗口内只有一个Object,这样可以确保当前事件都反馈到确定的控件及处理脚本上。

可以采取的思路是,使用一段javascript脚本向页面内注册Object元素及事件处理脚本,这段脚本中找到最上层的window对象,然后在这个window对象的Document里加入Object元素及事件处理脚本。各页面在调用功能的时候,相应地把自己所在的window对象及控件ID赋值给顶层window的变量中(如window.targetWin),方便在事件处理中通过顶层window.targetWin来访问实际调用功能的控件。