在网页中插入一个atl控件,
这个控件有一个方法和一个事件,这个方法仅仅就是Fire这个事件:
经过测试如果直接调用(使用)这个事件,不管是在atl里调用还是在网页的jsp代码中调用,网页中的事件都不能触发。
如果我在网页中插入一个button,这个button点击调用这个方法,却能正常使网页触发这个事件。
代码如下:<OBJECT ID="TestT1" CLASSID="CLSID:8EFE0B28-8D42-4E43-8B6C-D8ABECDBC090"></OBJECT><script language="JavaScript" for="TestT1" event="EvnT1()">  
 alert("ff");
</script><SCRIPT LANGUAGE=javascript>
TestT1.Test11();
</SCRIPT><input type="button" onclick="TestT1.Test11();">Test</input>有谁知道问题的原因吗?起初是为了方法的回掉,在atl中处理一个事情完毕后通知网页,发现在atl中直接fire事件不管用。

解决方案 »

  1.   

    建议你跟踪一下,看看错误是什么。或者在script中使用try{} catch()来捕获错误,看看是什么问题
      

  2.   

    可能是没有到idispatch吧.vb之类的不能直接用com对象
      

  3.   

    但是加入一个按钮就可以响应事件了
    <input type="button" onclick="TestT1.Test11();">Test</input>
    而这个按钮仅仅就是调用了TestT1的Test11方法,为什么在前面直接调用却不行:<SCRIPT LANGUAGE=javascript>
    TestT1.Test11();
    </SCRIPT>
      

  4.   

    "不管是在atl里调用还是在网页的jsp代码中调用,网页中的事件都不能触发。
    如果我在网页中插入一个button,这个button点击调用这个方法,却能正常使网页触发这个事件。"到底是你的事件不能触发,还是网页中所有的事件都不能触发?
    说清楚啊。如果是你的事件没有触发,那是因为你在添加button之前,没有触发事件的代码,所以收不到事件。后来你加了button,button调用你的方法,你的方法这才触发事件,所以你才收到了事件。如果是你不加button,网页中其它所有的事件都不能被触发,哪我就不清楚了。