How to handle an ActiveX event in Javascript

后端 未结 7 1375
半阙折子戏
半阙折子戏 2020-11-28 07:58

This is somewhat of a follow-up to an answer here.

I have a custom ActiveX control that is raising an event (\"ReceiveMessage\" with a \"msg\" parameter) that needs

7条回答
  •  Happy的楠姐
    2020-11-28 08:52

    OK, but if you are using C# (.NET 2.0) with inherited UserControl (ActiveX)... The only way to make it work is by "Extending" the event's handler functionality: http://www.codeproject.com/KB/dotnet/extend_events.aspx?display=Print

    The above project link from our friend Mr. Werner Willemsens has saved my project. If you don't do that the javascript can't bind to the event handler.

    He used the "extension" in a complex way due to the example he chose but if you make it simple, attaching the handle directly to the event itself, it also works. The C# ActiveX should support "ScriptCallbackObject" to bind the event to a javascript function like below:

      var clock = new ActiveXObject("Clocks.clock");
      var extendedClockEvents = clock.ExtendedClockEvents();
      // Here you assign (subscribe to) your callback method!
      extendedClockEvents.ScriptCallbackObject = clock_Callback; 
      ...
      function clock_Callback(time)
      {
        document.getElementById("text_tag").innerHTML = time;
      }
    

    Of course you have to implement IObjectSafety and the other security stuff to make it work better.

提交回复
热议问题