Сведения о вопросе

MAT

10:10, 24th August, 2020

Теги

javascript   activex    

Активный Элемент Управления X JavaScript

Просмотров: 416   Ответов: 2

Мы с моим коллегой столкнулись с неприятной ситуацией, когда нам приходится использовать активный элемент управления X для управления веб-камерой на странице.

Можно ли назначить обработчик событий javascript кнопке в активном элементе управления x, чтобы она запускала действие на странице при нажатии, или нам нужно создать кнопку на самой странице html, которая управляет активным элементом управления X, а затем может запускать любые необходимые действия на странице?



  Сведения об ответе

P_S_S

09:45, 1st August, 2020

Пожалуйста , просто используйте существующий элемент управления ActiveX. Как Flash или Silverlight. Flash имеет встроенную поддержку webcam и управляется через JavaScript. Silverlight не имеет встроенной поддержки камеры, но это JavaScript интеграция фантастическая.

Если вы должны написать свой собственный, то не волнуйтесь, это тривиально, чтобы заставить его взаимодействовать с JavaScript. Вам просто нужно открыть интерфейс IDispatch .

Для событий Вам необходимо узнать о точках подключения .


  Сведения об ответе

pumpa

16:15, 26th August, 2020

Да! Вы можете создавать события в C++/ActiveX land, что заставляет код JavaScript выполнять функцию обработчика событий. Я даже смог сделать Весь невидимый элемент управления ActiveX (того же цвета, что и фон страницы) без кнопок или визуальной обратной связи, которая выполняла всю свою работу GUI через JavaScript и CSS.

edit: совет Фрэнка-это правильно. Вот ссылка на сценарии событий.

Моя стратегия заключалась в вызове функции C++ с именем MyUpdate (которая реализует IConnectionPoint), когда я хотел принудительно обновить браузер.

(Кроме того, я убедился, что перекачиваю сообщения Windows в методе Fire_MyUpdate, потому что иногда код JavaScript вызывал бы обратно в C++ land, вызывая методы на элементе управления ActiveX; это позволяет избежать замораживания браузера и гарантирует, что JavaScript GUI остается отзывчивым, например, для кнопки отмены.)

На стороне браузера код JavaScript содержит глобальную переменную, ссылающуюся на объект, за которой следует"::", а затем имя метода:

function Uploader::MyUpdate()
{
    // ... code to fetch the current state of various
    // properties from the Uploader object and do something with it
    // for example check Uploader.IsActive and show or hide an HTML div
}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться