Domanda

Ho un oggetto activex che ho caricato in una pagina HTML. Quindi uso quell'oggetto activex per creare un altro oggetto, ma devo registrare un evento con il nuovo oggetto creato. L'oggetto si aspetta un listener di eventi di un certo tipo.

Posso caricare questa stessa dll in c # e funzionerà benissimo. Il codice è simile al seguente per c #.

upload = obj.constructUploadObj(uploadConfig);
upload.stateChanged += new UploadActionEvents_stateChangedEventHandler(upload_stateChanged);

In javascript ho un codice simile ma non riesco a registrare l'evento con l'oggetto.

uploadAction = obj.constructUploadObj(uploadConfig);
uploadAction.stateChanged = upload_stateChanged;

function upload_stateChanged(sender){
    writeLine("uploadState changed " + sender.getState());
}

Ho elencato alcune delle proprietà dell'oggetto uploadAction in javascript per assicurarmi che sia effettivamente creato. Quando provo a registrare l'evento con uploadAction, viene visualizzato un errore che dice "L'oggetto non supporta questa proprietà o metodo". & Quot;

A me sembra che stia aspettando un evento fortemente tipizzato. Esiste un modo per registrare l'evento simile a quello di C # in javascript?

Grazie in anticipo.

È stato utile?

Soluzione 3

Ho scoperto dalla società che queste proprietà non sono accessibili tramite JavaScript. Dovranno esternalizzarli per l'uso all'interno di JavaScript.

Altri suggerimenti

Il tuo javascript dovrebbe assomigliare a questo:

function uploadAction::stateChanged( parms )
{
    // ...
    // implementation
    // ...
}

Nota, questa è una dichiarazione di funzione statica, supponendo che tu abbia un oggetto X attivo chiamato 'uploadAction'. So che funziona, lo usiamo nella mia azienda.

Il messaggio di errore indica che uploadAction non supporta la proprietà stateChanged. Il tuo codice javascript sembra corretto, il problema sembra riguardare l'oggetto a cui stai tentando di collegare un gestore eventi.

Suggerirei di utilizzare il modello avanzato di registrazione degli eventi delineato qui .

uploadAction.addEventListener ('stateChanged', upload_stateChanged, false);

nota, potrebbe essere necessario interrogare gli argomenti per il metodo upload_stateChanged , poiché il primo argomento dovrebbe essere lo stato dell'evento. es: upload_stateChanged (evt, mittente) ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top