Active X Control JavaScript

时间:2008-08-25 18:07:57

标签: javascript activex

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

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

2 个答案:

答案 0 :(得分:7)

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

如果你必须编写自己的,那就不要担心,让它与JavaScript交互是微不足道的。您只需公开IDispatch界面。

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

答案 1 :(得分:4)

是的!您可以在C ++ / ActiveX中抛出事件,这使得JavaScript代码运行事件处理函数。我甚至能够创建一个完整的隐形ActiveX控件(与页面背景颜色相同),没有按钮或视觉反馈,通过JavaScript和CSS完成所有GUI工作。

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

当我想在浏览器中强制更新时,我的策略是调用名为MyUpdate的C ++函数(实现IConnectionPoint)。

(另外,我确保在Fire_MyUpdate方法中输入Windows消息,因为有时JavaScript代码会通过调用ActiveX控件上的方法回调到C ++域;这可以避免冻结浏览器并确保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
}