2009-07-20 5 views
2

J'ai le code suivant dans mon site Web. Ce code est un C# activex, la fonction alert (MyCC.GetID(). Fullname) fonctionne mais les événements ne marchent pas. Qu'est-ce que je fais de mal?Les événements ActiveX ne fonctionnent pas en 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> 

Répondre

1

La syntaxe correcte pour couler ces événements Javascript est comme suit:

function MyCC::CardInserted() { } 

ou

MyCC::CardInserted = function() { } 

Naturellement, vous ne devez pas spécifier une fonction anonyme:

MyCC::CardInserted = OnCardInserted; 
+0

J'ai testé mais retourne une erreur dans MyCC :: j'obtiens une erreur ie Attendue; – pedrofernandes

0
  1. essayez d'utiliser MyCC.attachEvent('CardInserted', OnCardInserted); à la place
  2. Vous devez également mettre en œuvre IObjectSafety
+0

J'ai essayé mais pas tiré. Introduit ce contrôle dans les formulaires Windows et fonctionne très bien, tous les événements sont déclenchés dans des formulaires Windows mais pas dans html/javascript. – pedrofernandes

1

Afin de joindre l'événement à l'ActiveX, vous pouvez utiliser la solution Andy E, mais avec 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> 
Questions connexes