Active X控件JavaScript

问题描述:

我的同事和我遇到了一个令人讨厌的情况,我们必须使用活动的X控件来操纵网页上的网络摄像头。Active X控件JavaScript

是否有可能将JavaScript事件处理程序分配给活动x控件中的按钮,以便在点击时触发页面上的操作,或者我们是否必须在html页面上创建一个按钮来操作Active X Control然后可以在页面上触发任何必要的操作?

只是使用现有的ActiveX控件。像Flash或Silverlight一样。 Flash具有内置的摄像头支持,并可通过JavaScript进行控制。 Silverlight没有内置的摄像头支持,但它的JavaScript集成是非常棒的。

如果您必须编写自己的代码,那么请勿烦恼,让它与JavaScript交互是微不足道的。你只需要暴露IDispatch接口。

对于活动,您需要了解Connection Points

是的!您可以在C++/ActiveX域中引发事件,使JavaScript代码运行事件处理函数。我甚至可以制作一个完全不可见的ActiveX控件(与页面背景相同的颜色),没有任何按钮或视觉反馈,它的所有GUI都可以通过JavaScript和CSS工作。

编辑:弗兰克的建议是正确的。 Here's the link on scripting events.

我想在浏览器中强制更新时,我的策略是调用名为MyUpdate(实现IConnectionPoint)的C++函数。 (另外,我确保在Fire_MyUpdate方法中抽取Windows消息,因为有时JavaScript代码会通过调用ActiveX控件上的方法调用回C++ land;这样可以避免冻结浏览器并确保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 
}