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 to be handled by Javascript in the web browser. Historically we've been able to use the following IE-only syntax to accomplish this on different projects:
function MyControl::ReceiveMessage(msg)
{
alert(msg);
}
However, when inside a layout in which the control is buried, the Javascript cannot find the control. Specifically, if we put this into a plain HTML page it works fine, but if we put it into an ASPX page wrapped by the <Form>
tag, we get a "MyControl is undefined" error. We've tried variations on the following:
var GetControl = document.getElementById("MyControl");
function GetControl::ReceiveMessage(msg)
{
alert(msg);
}
... but it results in the Javascript error "GetControl is undefined."
What is the proper way to handle an event being sent from an ActiveX control? Right now we're only interested in getting this working in IE. This has to be a custom ActiveX control for what we're doing.
Thanks.
I was able to get this working using the following script block format, but I'm still curious if this is the best way:
<script for="MyControl" event="ReceiveMessage(msg)">
alert(msg);
</script>
I have used activex in my applications before. i place the object tags in the ASP.NET form and the following JavaScript works for me.
function onEventHandler(arg1, arg2){
// do something
}
window.onload = function(){
var yourActiveXObject = document.getElementById('YourObjectTagID');
if(typeof(yourActiveXObject) === 'undefined' || yourActiveXObject === null){
alert('Unable to load ActiveX');
return;
}
// attach events
var status = yourActiveXObject.attachEvent('EventName', onEventHandler);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With