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 相关文章推荐
IE与Firefox在JavaScript上的7个不同写法小结
Sep 14 Javascript
基于Jquery的淡入淡出的特效基础练习
Dec 13 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
Feb 03 Javascript
document.write()及其输出内容的样式、位置控制
Aug 12 Javascript
深入理解javascript严格模式(Strict Mode)
Nov 28 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
Feb 16 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
深入理解setTimeout函数和setInterval函数
May 20 Javascript
浅析Ajax语法
Dec 05 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
May 02 Javascript
js模拟实现百度搜索
Jun 28 Javascript
分享8个JavaScript库可更好地处理本地存储
Oct 12 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微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
JavaScript之underscore_动力节点Java学院整理
2017/07/03 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python 获取url中的参数列表实例
2018/12/18 Python
python根据时间获取周数代码实例
2019/09/30 Python
python爬虫添加请求头代码实例
2019/12/28 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
迎八一活动主题
2014/01/31 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2014年图书室工作总结
2014/12/09 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
怎样写好工作计划
2019/04/10 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android