这在某种程度上是对此处答案的跟进。
我有一个自定义 ActiveX 控件,它引发了一个需要由 Web 浏览器中的 Javascript 处理的事件(带有“msg”参数的“ReceiveMessage”)。从历史上看,我们已经能够在不同的项目中使用以下仅限 IE 的语法来完成此操作:
function MyControl::ReceiveMessage(msg)
{
alert(msg);
}
但是,当在控件被隐藏的布局内时,Javascript 无法找到该控件。具体来说,如果我们把它放到一个普通的 HTML 页面中,它可以正常工作,但是如果我们把它放到一个由<Form>
标签包裹的 ASPX 页面中,我们会得到一个“MyControl is undefined”错误。我们尝试了以下变体:
var GetControl = document.getElementById("MyControl");
function GetControl::ReceiveMessage(msg)
{
alert(msg);
}
...但它会导致 Javascript 错误“GetControl 未定义”。
处理从 ActiveX 控件发送的事件的正确方法是什么?现在我们只对让这个在 IE 中工作感兴趣。这必须是我们正在做的自定义 ActiveX 控件。
谢谢。