我遇到了一些我编写的代码问题。我不得不匿名,但我可以解决问题。这个javascript在iframe中运行,是实例化的对象的一部分。问题特别是每次在调用invoke()时“类型'对象'无法转换为类型'函数'时,我都会遇到重复错误。但是,在IE8开发人员插件中,检查我传递的函数的类型(this.AJAXCallback),它清楚地表明它是一个被传递的函数。是否有任何特殊原因可能发生此错误?
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
};
答案 0 :(得分:1)
我发现了问题,但似乎不是我的问题。我在web.config文件中禁用了调试,并且错误已停止。调试打开后它也会回来,所以我认为可以说调试代码与我编写的非调试代码一样好。特别是,它是scriptmanager的JS文件之一。
答案 1 :(得分:-1)
它可能会产生问题,因为Callback是一个原型。您是否尝试在匿名函数调用中包装回调。
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
};