【问题标题】:ActiveX events not work in javascriptActiveX 事件在 javascript 中不起作用
【发布时间】:2009-07-20 11:42:49
【问题描述】:

我的网站中有下一个代码。此代码是 c# activex,函数 alert(MyCC.GetID().Fullname) 有效,但事件无效。我做错了什么?

<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>

【问题讨论】:

    标签: c# javascript html


    【解决方案1】:

    在 Javascript 中接收这些事件的正确语法如下:

    function MyCC::CardInserted () { }
    

    MyCC::CardInserted = function () { }
    

    当然,您不必指定匿名函数:

    MyCC::CardInserted = OnCardInserted;
    

    【讨论】:

    • 我测试过但在 MyCC 中返回错误:: 我得到一个预期的 ie 错误;
    【解决方案2】:

    为了将事件附加到 ActiveX,您可以使用 Andy 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>
    

    【讨论】:

      【解决方案3】:
      1. 尝试改用MyCC.attachEvent('CardInserted', OnCardInserted);
      2. 你还需要实现IObjectSafety

      【讨论】:

      • 我试过但没有开火。在 windows 窗体中引入了这个控件并且工作得很好,所有事件都在 windows 窗体中触发,但在 html/javascript 中没有。
      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 2014-12-24
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多