JS实现OCX控件的事件响应示例


Posted in Javascript onSeptember 17, 2014

JS支持OCX控件的事件(event),当OCX控件定义的事件发生时,JS可以捕获该事件并对事件进行相应的处理。

个人理解,其实就是事件的响应由谁来完成,OCX控件自身肯定是可以实现的,JS提供的这种机制使JS也可以完成OCX控件事件的响应。

简单举例如下:

首先在OCX控件中添加自定义事件(预定义事件同理,如鼠标点击等,没亲自试,感觉原理应该是一样的),

事件应该是属于窗口的,所以在Ctrl类上单击右键,Add->Add Event,如下图:

在打开的对话框中输入事件名称,例如OnChange,如果需要参数,设置参数信息,点击 [ 完成 ],向导自动生成代码,如下

// 事件映射 

BEGIN_EVENT_MAP(CH_OcxCtrl, COleControl) 

EVENT_CUSTOM_ID("OnChange", eventidChange, OnChange, VTS_NONE) 

END_EVENT_MAP()

好了,事件定义完成,接下来需要触发该事件,可在OCX控件的某个函数中调用OnChange()来触发事件。
OCX控件的事件定义至此完成。

接下来是JS中的对事件的响应,代码如下,

<script language="javascript" for="MyCtrl" event="OnChange()" type="text/javascript"> 

Call(); //也可直接写操作代码

</script>

MyCtrl是该控件在本页面中的OCX控件对象ID(name好像也可以,没有试过),可在javascript中操作该对象。
OnChange()是OCX控件中的事件,这里的事件名称必须与OCX控件中的事件名称一样。
如果事件带参数,当触发事件的时候,OCX控件会传递相应的参数,例如事件有两个参数p1和p2,可写为event = “OnChange(param1,param2)”,此时param1、param2会对应接收到p1、p2,同理Call(param1,param2)。
<script type="text/javascript" Language=Javascript> 

function Call(param1,param2) 

{ 

alert(param1+param2); //操作代码

} 

</script>

写的仓促,语言表达不是很清晰,基本思路是这样,用以备忘。
Javascript 相关文章推荐
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
JavaScript去掉数组中的重复元素
Jan 13 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
jQuery动画animate方法使用介绍
May 06 Javascript
js特殊字符转义介绍
Nov 05 Javascript
JS简单的图片放大缩小的两种方法
Nov 11 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
javascript动态生成树形菜单的方法
Nov 14 Javascript
javascript关于继承解析
May 10 Javascript
JavaScript 中使用 Generator的方法
Dec 29 Javascript
bootstrap table列和表头对不齐的解决方法
Jul 19 Javascript
javascript快速排序算法详解
Sep 17 #Javascript
js生成的验证码的实现与技术分析
Sep 17 #Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 #Javascript
node.js中使用q.js实现api的promise化
Sep 17 #Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 #Javascript
ie8下修改input的type属性报错的解决方法
Sep 16 #Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 #Javascript
You might like
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
Yii框架form表单用法实例
2014/12/04 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
JQuery之focus函数使用介绍
2013/08/20 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
对python中的控制条件、循环和跳出详解
2019/06/24 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
怎样自定义一个异常类
2016/09/27 面试题
企业军训感言
2014/02/08 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
小学二年级评语
2014/04/21 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
软环境建设心得体会
2014/09/09 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
工作自我推荐信范文
2015/03/25 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL