Я уже вижу несколько вопросов, связанных с этим, на SO, но я думаю, что мой достаточно отличается, чтобы не считаться дубликатом (если я ошибаюсь, дайте мне знать).
У меня есть элемент управления ActiveX, который я написал на C #, и хотя он в основном работает, я хочу вызывать событие в JavaScript при его нажатии (оно отображает изображение, поэтому оно является визуальным элементом на странице).
Конечная цель того, чего я хочу достичь, ничем не отличается от того, если бы это был тег <span>
, и у него было событие onclick
для вызова функции JavaScript при нажатии на область тега.
Большая часть материала , который я прочитал , содержит очень мелкие детали о том, как обрабатывать события в элементе управления ActiveX и отправлять информацию назад / вперед, и это хорошо, но кажется слишком сложным. Я не собираюсь связываться с элементом управления ActiveX, мне просто нужна функция JavaScript, которая запускается при нажатии на нее, подобно тегу <span>
или <div>
. Я могу справиться со всем остальным в JavaScript. Простая упаковка элемента управления в <span>
или <div>
с событием onclick
не имеет никакого эффекта - элемент управления ActiveX в значительной степени переопределяет его.
Есть ли простой способ справиться с этим для элемента управления ActiveX, написанного на C #?
Я думаю, что другой способ выразить это - я работаю со сторонним элементом управления, и мы должны использовать код, подобный следующему, чтобы заставить его взаимодействовать с нашей HTML-страницей через JavaScript
<script type="text/javascript" event="OnMouseClick(index)" for="AXObjectName">
<!--
AXObjectName_OnMouseClick(index);
//-->
</script>
Где AXObjectName
- это имя / идентификатор элемента управления, а AXObjectName_OnMouseClick
- это имя функции JavaScript, которая будет запускаться в моем коде, передавая параметр index
. Тем не менее, что мне нужно сделать, чтобы настроить такой метод, как OnMouseClick
в элементе управления? И если я не хочу передавать какую-либо фактическую информацию (то есть, нет index
), мне даже нужно идти так далеко?