照着VCKbase里杨老师的教材抄了一遍代码(地址是http://www.vckbase.com/document/viewdoc/?id=1539),大致内容就是用Atl支持连接点的方式做个ActiveX,接着我想在IE中将这个事件触发JS函数,JS脚本这么写的:
<script>
function callback(){
alert("OK");
}
function Go()
{
var reg;
reg = new ActiveXObject("ProgID.test);
reg.Result = callback;
reg.Add(1,2);
}
</script>
但是callback怎么都没法触发,这个问题出在哪呢?
Result是连接点,Add是ActiveX的一个方法

解决方案 »

  1.   

    如果仅仅通过脚本来设置回调,Result应该以属性的方式来设置,即Result是一个IDispatch*类型的属性,这是因为js并不支持连接点,vbs是可以的。使用连接点和属性在内部实现上有很大的差别。
    另一种可选的做法是在页面里做成一个object元素,然后在标签里设置事件,比如<object ... Result="callback()"></object>
      

  2.   

    那如果是因为js不支持连接点的话,那ajax中经常用的那句onreadystatechange = callback,这样的形式是如何实现的呢?
      

  3.   

    ...onreadystatechange = callback,这样的形式是如何实现的呢?--------
    1楼都说了,IDispatch*ActiveX内部在想要调用callback时,用 IDispatch* 的 Invoke 执行即可...
      

  4.   

    onreadystatechange 就是一个属性,而不是连接点
      

  5.   

    应该写注册响应函数。用这种方式生成对象。
    <object ... > </object>看这里
    http://hi.baidu.com/huhe/blog/item/817a59ee1ca423f8b3fb95de.html