我在IE中嵌入了一个VC写的控件,然后控件的所有方法和属性的访问都正常,但是就是用Javascipt写的代码里面不能响应该事件(就是IE没有反映,也不抱任和错误),控件的事件在ActiveX测试容器中是正常的。谁碰到过类似的问题啊?
IE代码:
<html>
<head>
<script language="javascript">
<!--
function AgentStateChange(state,env,timestamp)
{
alert(state);
}



function InitializeOcx()
{
//var ocxAgent=new AgentOcx();
var nRet=ocxAgent.Initialize("tcp","192.168.1.200","11000");
alert(nRet);

ocxAgent.attachEvent("OnStateChange2",AgentStateChange);
}
function ReleaseOcx()
{
ocxAgent.Release();
}
function AgentLogin()
{
var nRet=ocxAgent.Login("liugang","","1899");
alert(nRet);
/*alert(ocxAgent.AgentName);
alert(ocxAgent.AgentGroup);
alert(ocxAgent.AgentType);*/
}
function AgentLogout()
{
var nRet=ocxAgent.Logout();
alert(nRet);
}
//-->
</script>
</head>
<body onload="InitializeOcx();" onunload="ReleaseOcx();">
<OBJECT id=ocxAgent classid=CLSID:C41ACE17-6DFB-4644-B84A-134B5499A72C name=ocxAgent VIEWASTEXT event="true">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="1905">
<PARAM NAME="_ExtentY" VALUE="635">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
<script type="text/javascript" for="ocxAgent" event="OnStateChange()" defer>
alert("State");
</script>
<a href="javascript:AgentLogin();">注册</a><p>
<a href="javascript:AgentLogout();">注销</a>
</body>
</html>

解决方案 »

  1.   

    我也在做嵌入IE的ActiveX ATL的,遇到了下面的问题
    嵌入到IE中的情况下,能在你的控件里使用自定义光标吗?你的控件能响应keydown事件吗?
      

  2.   

    顶 我也一样 不能响应event
      

  3.   

    我IE里调用C写的OCX,属性和方法也都能正常调用,但是就是响应不了OCX里的事件
    谁知道该如何解决?
      

  4.   

    OCX的事件,你需要在你的控件里处理,在适当的情况下执行对应的Fire_XXX等类似的事件函数.
    然后你在IE中处理XXX的事件就OK了.
    KEYDOWN没试过,好像也可以的.
      

  5.   

    key down 被IE 捕获了,需要在onmouseactive的时候
    调用InPlaceActivate(OLEIVERB_UIACTIVATE);