关于activex:Active X控件JavaScript

关于activex:Active X控件JavaScript

Active X Control JavaScript

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

是否可以为活动x控件中的按钮分配一个javascript事件处理程序,以便在单击该按钮时在页面上触发操作,还是我们必须在html页面本身上创建一个按钮来操纵Active X Control,然后可以在页面上执行任何必要的操作?


请仅使用现有的ActiveX控件。像Flash或Silverlight。 Flash具有内置的网络摄像头支持,并且可以通过JavaScript进行控制。 Silverlight没有内置的相机支持,但是它的JavaScript集成很棒。

如果您必须自己编写而不是烦恼,那么让它与JavaScript交互是微不足道的。您只需要公开IDispatch接口。

对于事件,您需要了解连接点。


是的!您可以在C / ActiveX领域中引发事件,这会使JavaScript代码运行事件处理程序功能。我什至可以制作一个完全不可见的ActiveX控件(与页面背景颜色相同),而没有按钮或视觉反馈,该控件通过JavaScript和CSS来完成其所有GUI。

edit:Frank的建议是正确的。这是脚本事件的链接。

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

(此外,我确保在Fire_MyUpdate方法中泵送Windows消息,因为有时JavaScript代码会通过调用ActiveX控件上的方法而回调到C领域;这避免了冻结浏览器并确保JavaScript GUI保持响应状态,例如用于"取消"按钮。)

在浏览器端,JavaScript代码具有引用对象的全局变量,后跟" ::",后跟方法名称:

1
2
3
4
5
6
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
}

推荐阅读