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 相关文章推荐
js变量作用域及可访问性的探讨
Nov 23 Javascript
javascript开发技术大全-第3章 js数据类型
Jul 03 Javascript
时间戳转换为时间 年月日时间的JS函数
Aug 19 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
js窗口关闭提示信息(兼容IE和firefox)
Oct 23 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
vue的项目如何打包上线
Apr 13 Vue.js
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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
php7性能提升的原因详解
2019/10/13 PHP
WEB高性能开发之疯狂的HTML压缩
2010/06/19 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
微信小程序自定义组件components(代码详解)
2019/10/21 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
Python去除字符串两端空格的方法
2015/05/21 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
小学英语教学反思
2014/01/30 职场文书
策划总监岗位职责
2014/02/16 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2014年药店工作总结
2014/11/20 职场文书
公司总经理岗位职责
2015/04/01 职场文书
大学推普周活动总结
2015/05/07 职场文书
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js