ActiveX事件在javascript中不起作用
问题描述:
我在我的网站中有下一个代码。此代码是c#activex,函数警报(MyCC.GetID()。Fullname)有效,但事件不起作用。我做错了什么?ActiveX事件在javascript中不起作用
<object id="MyCC" codebase="http://localhost:3239/WebDAVCab.CAB"
classid="clsid:5F9A5DDB-0D35-4893-A9ED-1FAFFE94373A" width="80" height="120" VIEWASTEXT>
</object>
<script type="text/javascript">
MyCC = document.getElementById("MyCC");
alert(MyCC.GetID().Fullname);
MyCC.CardInserted = OnCardInserted;
MyCC.CardRemoved = OnCardRemoved;
function OnCardInserted()
{
alert("raised");
}
function OnCardRemoved()
{
alert("raised2");
}
</script>
答
的正确语法沉没在Javascript这些事件如下:
function MyCC::CardInserted() { }
或
MyCC::CardInserted = function() { }
当然,你不必指定一个匿名函数:
MyCC::CardInserted = OnCardInserted;
答
- 尝试使用
MyCC.attachEvent('CardInserted', OnCardInserted);
代替 - 您还需要实现IObjectSafety
+0
我试过但没有着火。在windows窗体中引入这个控件并且工作得很好,所有的事件都是在windows窗体中触发的,但是在html/javascript中没有。 – pedrofernandes 2009-07-20 12:59:43
答
为了将事件附加到ActiveX可以使用安迪e系统解决方案,但EVAL:
<object name="MyCC" id="MyCC" codebase="http://localhost:3239/WebDAVCab.CAB"
classid="clsid:5F9A5DDB-0D35-4893-A9ED-1FAFFE94373A" width="80" height="120" VIEWASTEXT>
</object>
<script type="text/javascript">
eval("function MyCC::CardInserted() {return OnCardInserted();}");
eval("function MyCC::CardRemoved() {return OnCardRemoved();}");
function OnCardInserted()
{
alert("raised");
}
function OnCardRemoved()
{
alert("raised2");
}
</script>
我测试过但在MyCC中返回错误::我得到一个ie错误预期; – pedrofernandes 2009-07-21 11:20:49