Active X Control JavaScript - PullRequest
       37

Active X Control JavaScript

9 голосов
/ 25 августа 2008

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

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

Ответы [ 2 ]

7 голосов
/ 25 августа 2008

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

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

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

4 голосов
/ 25 августа 2008

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

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

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

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

На стороне браузера в коде 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...