Pergunta

Meu colega de trabalho e eu nos deparamos com uma situação desagradável em que precisamos usar um controle X ativo para manipular uma webcam em uma página.

É possível atribuir um manipulador de eventos javascript a um botão no controle Active X para que ele dispare uma ação na página quando clicado, ou temos que criar um botão na própria página HTML que manipule o controle Active X e então pode disparar quaisquer ações necessárias na página?

Foi útil?

Solução

Por favor basta usar um controle ActiveX existente.Como Flash ou Silverlight.O Flash possui suporte integrado para webcam e pode ser controlado via JavaScript.O Silverlight não possui suporte integrado para câmera, mas sua integração com JavaScript é fantástica.

Se você precisa escrever o seu próprio, não se preocupe, é trivial fazer com que ele interaja com JavaScript.Você só precisa expor o IDispatch interface.

Para eventos, você precisa aprender sobre Pontos de conexão.

Outras dicas

Sim!Você pode lançar eventos em C++/ActiveX, o que faz com que o código JavaScript execute uma função de manipulador de eventos.Consegui até criar um controle ActiveX totalmente invisível (mesma cor do plano de fundo da página) sem botões ou feedback visual que fazia todo o trabalho da GUI por meio de JavaScript e CSS.

editar:O conselho de Frank está certo. Aqui está o link sobre eventos de script.

Minha estratégia era chamar uma função C++ chamada MyUpdate (que implementa IConnectionPoint) quando queria forçar atualizações no navegador.

(Além disso, certifiquei-me de enviar mensagens do Windows no método Fire_MyUpdate porque às vezes o código JavaScript retornava para o ambiente C++ chamando métodos no controle ActiveX;isso evita o congelamento do navegador e garante que a GUI do JavaScript permaneça responsiva, por exemplo.para um botão Cancelar.)

No lado do navegador, o código JavaScript possui a variável global referenciando o objeto, seguida de "::", seguida do nome do método:

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
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top