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下的keyCode键码值表
Apr 10 Javascript
javascript中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
javascript框架设计之类工厂
Jun 23 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
p5.js入门教程之键盘交互
Mar 19 Javascript
Vue使用NPM方式搭建项目
Oct 25 Javascript
Electron 如何调用本地模块的方法
Feb 01 Javascript
Vue实现页面添加水印功能
Nov 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
PHP安装全攻略:APACHE
2006/10/09 PHP
php 删除cookie和浏览器重定向
2009/03/16 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
python二分查找算法的递归实现方法
2016/05/12 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python实现程序重启和系统重启方式
2020/04/16 Python
python代码如何注释
2020/06/01 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
网上签名寄语活动留言
2014/01/18 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
婚前协议书范本
2014/04/15 职场文书
企业文化标语口号
2014/06/09 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
Anaconda配置各版本Pytorch的实现
2021/08/07 Python