События ActiveX не работают в JavaScript - PullRequest
2 голосов
/ 20 июля 2009

У меня есть следующий код на моем сайте. Этот код представляет собой c # activex, функция оповещения (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>

Ответы [ 3 ]

1 голос
/ 20 июля 2009

Правильный синтаксис для погружения этих событий в Javascript следующий:

function MyCC::CardInserted () { }

или

MyCC::CardInserted = function () { }

Естественно, вам не нужно указывать анонимную функцию:

MyCC::CardInserted = OnCardInserted;
1 голос
/ 10 мая 2013

Чтобы прикрепить событие к 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>
0 голосов
/ 20 июля 2009
  1. попробуйте использовать MyCC.attachEvent('CardInserted', OnCardInserted); вместо
  2. Вам также нужно реализовать IObjectSafety
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...