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 相关文章推荐
JavaScript静态的动态
Sep 18 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
Mar 08 Javascript
JavaScript中的Primitive对象封装介绍
Dec 31 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
JavaScript中子对象访问父对象的方式详解
Sep 01 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
Nov 16 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
查找Vue中下标的操作(some和findindex)
Aug 12 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
smarty简单入门实例
2014/11/28 PHP
微信支付开发订单查询实例
2016/07/12 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
Python字符转换
2008/09/06 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
不服劳动仲裁起诉书
2015/05/20 职场文书
委托收款证明
2015/06/23 职场文书
python爬虫--selenium模块
2021/03/31 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server