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 getStyle获取最终样式函数代码
Apr 01 Javascript
js setTimeout 参数传递使用介绍
Aug 13 Javascript
jQuery验证插件 Validate详解
Nov 20 Javascript
Javascript之String对象详解
Jun 08 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
Apr 28 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
JavaScript实现随机点名器
Mar 25 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 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自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
2016/11/14 PHP
php json相关函数用法示例
2017/03/28 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
js实现搜索栏效果
2018/11/16 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
vue实现搜索功能
2019/05/28 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
Python标准库笔记struct模块的使用
2018/02/22 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
python实现电子产品商店
2019/02/26 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python文件操作基础流程解析
2020/03/19 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
工程材料采购方案
2014/05/18 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript