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 相关文章推荐
JavaScript模板入门介绍
Sep 26 Javascript
IE6已终止操作问题的2种情况及解决
Apr 23 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
May 07 Javascript
javascript实现动态标签云
Oct 16 Javascript
js实现图片轮播效果
Dec 19 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
Jun 14 Javascript
JavaScript设计模式之代理模式简单实例教程
Jul 03 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
Oct 10 Javascript
Promise扫盲贴
Jun 24 Javascript
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
javascript中call,apply,bind的区别详解
Dec 11 Javascript
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
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
PHP4.04简明安装
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
PHP修改session_id示例代码
2014/01/08 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
jquery radio 操作代码
2011/03/16 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
python回调函数的使用方法
2014/01/23 Python
深入浅析Python字符编码
2015/11/12 Python
Python实现基本线性数据结构
2016/08/22 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
python pygame模块编写飞机大战
2018/11/20 Python
使用python绘制二维图形示例
2019/11/22 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
2015高中教师个人工作总结
2015/07/21 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
SQLServer之常用函数总结详解
2021/08/30 SQL Server
js中Object.create实例用法详解
2021/10/05 Javascript
win10更新失败无限重启解决方法
2022/04/19 数码科技