2009-05-11 7 views
1

Je rencontre un problème avec un code que j'ai écrit. J'ai dû anonymiser, mais je peux donner le problème. Ce javascript s'exécute dans un iframe, et fait partie d'un objet qui est instancié. Le problème en particulier est que j'obtiens une erreur répétitive chaque fois que "Type 'Object' ne peut pas être converti en type 'Function'" dans l'appel invoke(). Cependant, dans l'addon du développeur IE8, en vérifiant le typeof de la fonction que je passe (this.AJAXCallback), il est clairement indiqué que c'est une fonction qui est passée. Y a-t-il une raison particulière à cette erreur?Problème appelant ASP.NET AJAX WebServiceProxy.invoke() Méthode Javascript

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 
}; 

Répondre

1

J'ai trouvé le problème, et il ne semble pas que ce soit de ma part. J'ai désactivé le débogage dans le fichier web.config et l'erreur s'est arrêtée. Il est également revenu après que le débogage a été activé, donc je pense qu'il est sûr de dire que le code de débogage n'a pas fonctionné aussi bien avec ce que j'ai écrit que le code non-debug. En particulier, c'était l'un des fichiers JS du scriptmanager.

-1

Cela peut poser des problèmes car le rappel est un prototype. Avez-vous essayé d'encapsuler le rappel dans un appel de fonction anonyme.

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 
}; 
+0

Je l'ai essayé remplacer par une fonction vide comme ci-dessous, mais je me suis tout de même la même erreur: var a = window.top.window.Sys.Net.WebServiceProxy.invoke («/Data.asmx », ' GetData ', false, {"IDCode": 0}, la fonction (a, b) {;}, null); – Sukasa