2009-07-20 20 views
2

Ich habe nächsten Code in meiner Website. Dieser Code ist ein C# activex, die Funktion alert (MyCC.GetID(). Fullname) funktioniert, aber Ereignisse funktionieren nicht. Was mache ich falsch?ActiveX-Ereignisse funktionieren nicht in 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> 

Antwort

1

Die korrekte Syntax für sinkende diese Ereignisse in Javascript ist wie folgt zu implementieren mit MyCC.attachEvent('CardInserted', OnCardInserted); statt

  • Sie benötigen:

    function MyCC::CardInserted() { } 
    

    oder

    MyCC::CardInserted = function() { } 
    

    Natürlich müssen Sie nicht eine anonyme Funktion angeben:

    MyCC::CardInserted = OnCardInserted; 
    
  • +0

    Ich habe getestet, aber einen Fehler in MyCC :: i erhalten einen ie Fehler erwartet; – pedrofernandes

    0
    1. versuchen auch IObjectSafety
    +0

    Ich habe versucht, aber nicht feuern. Dieses Steuerelement in Windows-Formularen eingeführt und funktioniert sehr gut, alle Ereignisse werden in Windows-Formularen ausgelöst, aber nicht in HTML/Javascript. – pedrofernandes

    1

    Um das Ereignis an das ActiveX befestigen Sie die Andy E Lösung verwenden können, aber mit 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> 
    
    Verwandte Themen