Это часть ответа на вопрос here.Как обрабатывать событие ActiveX в Javascript
У меня есть пользовательский элемент управления ActiveX, который поднимает событие («ReceiveMessage» с параметром «msg»), который должен обрабатываться Javascript в веб-браузере. Исторически мы были в состоянии использовать следующий IE-только синтаксис для достижения этой цели на различных проектах:
function MyControl::ReceiveMessage(msg)
{
alert(msg);
}
Однако, когда внутри макета, в котором захоронен контроль, Javascript не может найти элемент управления. В частности, если мы помещаем это в обычную HTML-страницу, он отлично работает, но если мы помещаем его на страницу ASPX, обернутую тегом <Form>
, мы получаем ошибку «MyControl undefined». Мы пытались вариации на следующем:
var GetControl = document.getElementById("MyControl");
function GetControl::ReceiveMessage(msg)
{
alert(msg);
}
... но это приводит к ошибке Javascript «GetControl не определен.»
Каков правильный способ обработки события, отправляемого с элемента управления ActiveX? Сейчас мы заинтересованы только в том, чтобы это работало в IE. Это должно быть настраиваемый элемент управления ActiveX для того, что мы делаем.
Спасибо.
Чтобы уточнить один момент - getElementById отлично работает. У нас есть ссылка на элемент управления, Javascript просто не любит нас, используя синтаксис :: с этой ссылкой. – Raelshark 2008-09-29 21:44:16
Я никогда раньше не видел синтаксис :: где это документировано? – AnthonyWJones 2008-09-30 07:21:49
Трудно найти документацию для него, но вот ссылка на статью MSDN, в которой упоминается: http://msdn.microsoft.com/en-us/library/ms974564.aspx – Raelshark 2008-09-30 11:57:44