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 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
MultiSelect左右选择控件的设计与实现介绍
Jun 08 Javascript
js跑步算法的实现代码
Dec 04 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
Dec 05 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
JavaScript判断变量名是否存在数组中的实例
Dec 28 Javascript
Node.js中DNS模块学习总结
Feb 28 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
微信小程序时间戳转日期的详解
Apr 30 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 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边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python赋值语句后逗号的作用分析
2015/06/08 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
python 修改本地网络配置的方法
2019/08/14 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
文史专业毕业生自荐信
2013/11/17 职场文书
工程项目经理岗位职责
2013/12/15 职场文书
《草原的早晨》教学反思
2014/04/08 职场文书
小学毕业演讲稿
2014/04/25 职场文书
名人演讲稿范文
2014/09/16 职场文书
离婚协议书格式
2014/11/21 职场文书
开票员岗位职责
2015/02/12 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers