怎么响应COM组件的链接点事件 现在有一个COM组件,想在Web中测试一下,但是没有用过JavaScrip,不是到怎么响应COM的事件。还请各位高手给个详细的例子。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 组件里面必须有相应的接口向web页公开. 比如说media player组件有play方法是公开的, 那么你调用 mp.play() 就可以使这个播放器控件开始播放. 谢谢1楼。我知道怎样在Web中调用组件的方法。我现在的问题是,如果组件有一个事件,或者消息,需要通知Web,那该怎么办?组件中实现了几个事件,就是为了让调用者(Web)能够处理这些事件,已达到互动。我不知道怎么才能让Web处理这些事件。 可以在组件里面指定当事件发生时执行外部动作嘛. 比如说 xmlhttp组件的 onreadystatechange, 就是当状态改变时发生.1.组件在有事件时主动执行外部定义的处理函数2.外部定时检测组件的状态, 发现有改变时执行某个动作 这也是可行的办法。但是通过链接点事件行吗?因为组件的编写应该是不考虑调用者的语言的。如果不是用COM本身的事件,那么对于Web,就要单独实现一个COM,二期如果Web的脚本不同,COM也要不同。 不知你说的 "通过链接点事件" 该怎么理解.但有一点, 组件调用外部的代码, 是用外部代码的引擎来执行的, 所以不需要考虑调用者的语言.如果页面上有多个COM组件, 要在组件间进行通信: 如果不能直接互相调用对方的方法, 可以使用外部脚本做代理实现. 说的具体点吧。加入说我的组件CLSID:1DEA726F-9D1D-432B-9C00-959E556229C8有一个事件是OnStart。那么应该怎样用javascript响应这个事件?请 xiangtanboy给一个简单的例子。多谢了。对javascrip实在知道的太少。 <object classid="CLSID:1DEA726F-9D1D-432B-9C00-959E556229C8" id="myCom"></object><script type="text/javascript" language="javascript">function onStart(){ //start时要执行的动作}document.getElementById('myCom').onStart = onStart;</script> 是不是使用JS不能响应COM的事件?请有经验的高手明示。 类似这样:<script language="javascript" for="myCom" event="OnStart"> alert('OnStart');</script> 谢谢dh20156我这样试过,不行。不知道这种方法对组件的事件有什么特殊要求。我的这个组件是通过连接点实现的。我查了一些资料,说微软的很过软件都支持连接点实现的事件的,比如IE,office。所以我想用JS应该可以实现开头说的功能。另外这个组件的事件实现是没有问题的。我在MFC中试过了,一切正常。不知道JS中的问题出在哪里。哪位大侠有成功的例子吗?给我学习一下。 可能MFC里面调用和JS里面调用是不同的吧.你要确认一点, onStart是不是对外公开了.alert(typeof myCom.onStart) 如果显示 undefined, 那么JS是不能访问到这个接口的. 不是让JS访问组件的这个接口,而是要让JS实现一个函数,来让组件来访问。 让JS实现一个函数,来让组件来访问,这个有点儿难度,也不符合ActiveX/COM组件的设计理念。你是不是想隐藏源代码呀? 谢谢各位,上面的方法是正确的。之前没有成功,是组件的问题,需要实现接口IProvideClassInfo2,组件的事件才能被JS捕获。 微软是否为ActiveX/COM提供了简单途径访问web文档对象,我没研究过。但是可以提供给你一个线索,Flash里面是可以调用页面js函数的,Flash也就是页面中的一个ActiveX控件。 请问可以在外部调用COM的程序中在COM事件响应中调用COM方法吗? utf8转GBK码,在线等 新手求问 下拉框js问题 非常简单的问题?!!!!!!!!!!! 在vbs中的asc函数,在js中有此功能函数么 时间转换 狂急:验证时间格式为yyyy-mm-dd hh:mm 如何用js实现iframe插入别的站点内容!谢谢 版主帮忙解决一下,我现在所打开的所有帖子都只显示一个页面,一个未格式化的xml页面 哪儿有作图的是二维图x坐标和Y坐标都有参数传送的 javaapplet java中实现讲js代码传到客户端 请问高手图片滚动加载代码是什么?谢谢。
比如说media player组件有play方法是公开的, 那么你调用 mp.play() 就可以使这个播放器控件开始播放.
我知道怎样在Web中调用组件的方法。
我现在的问题是,如果组件有一个事件,或者消息,需要通知Web,那该怎么办?
组件中实现了几个事件,就是为了让调用者(Web)能够处理这些事件,已达到互动。我不知道怎么才能让Web处理这些事件。
2.外部定时检测组件的状态, 发现有改变时执行某个动作
这也是可行的办法。但是通过链接点事件行吗?
因为组件的编写应该是不考虑调用者的语言的。如果不是用COM本身的事件,那么对于Web,就要单独实现一个COM,二期如果Web的脚本不同,COM也要不同。
但有一点, 组件调用外部的代码, 是用外部代码的引擎来执行的, 所以不需要考虑调用者的语言.
如果页面上有多个COM组件, 要在组件间进行通信:
如果不能直接互相调用对方的方法, 可以使用外部脚本做代理实现.
加入说我的组件CLSID:1DEA726F-9D1D-432B-9C00-959E556229C8
有一个事件是OnStart。
那么应该怎样用javascript响应这个事件?
请 xiangtanboy给一个简单的例子。多谢了。对javascrip实在知道的太少。
<script type="text/javascript" language="javascript">
function onStart()
{
//start时要执行的动作
}
document.getElementById('myCom').onStart = onStart;
</script>
<script language="javascript" for="myCom" event="OnStart">
alert('OnStart');
</script>
我这样试过,不行。
不知道这种方法对组件的事件有什么特殊要求。我的这个组件是通过连接点实现的。
我查了一些资料,说微软的很过软件都支持连接点实现的事件的,比如IE,office。所以我想用JS应该可以实现开头说的功能。
另外这个组件的事件实现是没有问题的。我在MFC中试过了,一切正常。
不知道JS中的问题出在哪里。
哪位大侠有成功的例子吗?给我学习一下。
你要确认一点, onStart是不是对外公开了.
alert(typeof myCom.onStart) 如果显示 undefined, 那么JS是不能访问到这个接口的.
你是不是想隐藏源代码呀?
谢谢各位,上面的方法是正确的。
之前没有成功,是组件的问题,需要实现接口IProvideClassInfo2,组件的事件才能被JS捕获。
但是可以提供给你一个线索,Flash里面是可以调用页面js函数的,Flash也就是页面中的一个ActiveX控件。