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 相关文章推荐
[原创]网络复制内容时常用的正则+editplus
Nov 30 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
Jul 10 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
js 用CreateElement动态创建标签示例
Nov 20 Javascript
JQuery中attr方法和removeAttr方法用法实例
May 18 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
Sep 14 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
详解Vue打包优化之code spliting
Apr 09 Javascript
Vue 实现手动刷新组件的方法
Feb 19 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 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利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
php unlink()函数使用教程
2018/07/12 PHP
PHP实现与java 通信的插件使用教程
2019/08/11 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
javascript实现类似百度分享功能的方法
2015/07/27 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
网红编程语言Python将纳入高考你怎么看?
2018/06/07 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
python虚拟环境完美部署教程
2019/08/06 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
八年级历史教学反思
2014/01/10 职场文书
三八节标语
2014/06/27 职场文书
早会开场白台词大全
2015/06/01 职场文书
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技