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 相关文章推荐
Java/JS获取flash高宽的具体方法
Dec 27 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
jQuery中 prop() attr()使用详解
May 19 Javascript
Angular.Js的自动化测试详解
Dec 09 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
vue实现简单表格组件实例详解
Apr 16 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 jQuery
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 Javascript
详解webpack + react + react-router 如何实现懒加载
Nov 20 Javascript
微信小程序如何使用globalData的方法
Jun 06 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 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使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
详解PHP对象的串行化与反串行化
2016/01/24 PHP
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
微信小程序 网络通信实现详解
2019/07/23 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python使用selenium实现批量文件下载
2019/03/11 Python
Python龙贝格法求积分实例
2020/02/29 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
文明学生事迹材料
2014/01/29 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
中国世界遗产导游词
2015/02/13 职场文书
后勤工作个人总结
2015/02/28 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS