Pergunta

Eu estou tendo um problema com algum código que eu escrevi. Eu tive que tornar anônimo, mas eu posso dar o problema. Este javascript é executado dentro de um iframe, e é parte de um objeto que é instanciado. O problema, em particular, é que recebo um erro de repetir a cada vez que "Tipo 'Object' não pode ser convertido para o tipo 'função'" na chamada invoke (). No entanto, no revelador addon IE8, verificando o typeof da função de eu passar (this.AJAXCallback), diz claramente que é uma função que está sendo passado. Existe alguma razão particular, este erro pode estar ocorrendo?

MyObject.prototype.AJAXCallback=function(Data, e){
    //snip
};

MyObject.prototype.Init=function(){
    var a = window.top.window.Sys.Net.WebServiceProxy.invoke('/Data.asmx', 'GetData', false, { "IDCode":0 }, this.AJAXCallback, null);
    //snip
};
Foi útil?

Solução

Eu encontrei o problema, e não parece ser da minha parte. I depuração desativado no arquivo web.config, e o erro parou. Ele também voltou depois de depuração foi ligado, então eu acho que é seguro dizer que o código de depuração não funciona tão bem com o que eu escrevi que o código não-debug fez. Em particular, foi um dos arquivos JS do ScriptManager.

Outras dicas

Pode-se dar problemas porque o retorno de chamada é um protótipo. Você tentou envolver o retorno de chamada em uma chamada de função anônima.

MyObject.prototype.Init=function(){
    var a = window.top.window.Sys.Net.WebServiceProxy.invoke('/Data.asmx', 'GetData', false, { "IDCode":0 }, function(data,e) { 
       this.AJAXCallback(data,e); 
    }, null);
    //snip
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top