Question

Mon collègue et moi avons rencontré une situation désagréable dans laquelle nous devons utiliser un contrôle X actif pour manipuler une caméra Web sur une page.

Est-il possible d'attribuer un gestionnaire d'événements javascript à un bouton du contrôle Active X afin qu'il déclenche une action sur la page lorsque vous cliquez dessus, ou devons-nous créer un bouton sur la page HTML elle-même qui manipule le contrôle Active X et alors peut-on déclencher toutes les actions nécessaires sur la page ?

Était-ce utile?

La solution

S'il te plaît utilisez simplement un contrôle ActiveX existant.Comme Flash ou Silverlight.Flash prend en charge la webcam intégrée et est contrôlable via JavaScript.Silverlight ne prend pas en charge la caméra intégrée, mais son intégration JavaScript est fantastique.

Si vous devez écrire le vôtre, ne vous inquiétez pas, il est trivial de le faire interagir avec JavaScript.Il vous suffit d'exposer le IDispatch interface.

Pour les événements, vous devez vous renseigner Points de connexion.

Autres conseils

Oui!Vous pouvez lancer des événements en C++/ActiveX, ce qui permet au code JavaScript d'exécuter une fonction de gestionnaire d'événements.J'ai même pu créer un contrôle ActiveX entièrement invisible (de la même couleur que l'arrière-plan de la page) sans boutons ni retour visuel qui effectuait tout son travail d'interface graphique via JavaScript et CSS.

modifier:Les conseils de Frank sont justes. Voici le lien sur les événements de script.

Ma stratégie consistait à appeler une fonction C++ appelée MyUpdate (qui implémente IConnectionPoint) lorsque je voulais forcer les mises à jour dans le navigateur.

(De plus, je me suis assuré de pomper les messages Windows dans la méthode Fire_MyUpdate, car parfois le code JavaScript rappelait le langage C++ en appelant des méthodes sur le contrôle ActiveX ;cela évite de geler le navigateur et garantit que l'interface graphique JavaScript reste réactive, par ex.pour un bouton Annuler.)

Côté navigateur, le code JavaScript comporte la variable globale référençant l'objet, suivie de "::", suivi du nom de la méthode :

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
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top