Javascript registrar evento para objeto
-
03-07-2019 - |
Pergunta
Eu tenho um objeto ActiveX I carregado em uma página HTML. Eu, então, usar esse objeto activex para criar outro objeto, mas eu preciso registrar um evento com o novo objeto criado. O objeto está esperando um ouvinte de evento de um certo tipo.
Eu posso carregar essa mesma DLL em c # e ele vai funcionar bem. olhares código como este para c #.
upload = obj.constructUploadObj(uploadConfig);
upload.stateChanged += new UploadActionEvents_stateChangedEventHandler(upload_stateChanged);
em JavaScript Eu tenho um código semelhante, porém não posso começar o evento registrado com o objeto.
uploadAction = obj.constructUploadObj(uploadConfig);
uploadAction.stateChanged = upload_stateChanged;
function upload_stateChanged(sender){
writeLine("uploadState changed " + sender.getState());
}
Eu enumerou algumas das propriedades do objeto uploadAction em javascript para garantir que ele é realmente criado. Quando eu tentar e registrar o evento com uploadAction ele lança um erro dizendo "objecto não suporta esta propriedade ou método."
Para mim parece que seu esperando um evento fortemente tipado. Existe uma maneira de registrar o evento semelhante à de C #, em javascript?
Agradecemos antecipadamente.
Solução 3
Encontrado fora da empresa que essas propriedades não são acessíveis através de javascript. Eles terão de exteriorizar-los para uso dentro de javascript.
Outras dicas
O javascript deve ser algo como isto:
function uploadAction::stateChanged( parms )
{
// ...
// implementation
// ...
}
Note que esta é uma declaração de função estática, supondo que você tem um objeto Active X chamado 'uploadAction'. Eu sei que isso não funciona - nós usá-lo na minha empresa
.Os meios de mensagens de erro que uploadAction não suporta stateChanged propriedade. Seus olhares de código javascript corrigir, o problema parece ser com o objeto que você está tentando anexar um manipulador de eventos para.
Eu sugiro usar o modelo de registro de eventos avançado delineado aqui .
uploadAction.addEventListener('stateChanged', upload_stateChanged, false);
nota, pode ser necessário para interrogar os seus argumentos para o método upload_stateChanged
, como o primeiro argumento deve ser o estado do evento. ex: upload_stateChanged(evt, sender)
...