因此,这是处理xmlhttprequest的简单JavaScript代码的一部分。即产生错误的部分是在底部(否则如果):未定义的与“已定义”参数不存在函数错误
httpReq.onreadystatechange = function(){
if (httpReq.readyState == 4) {
if (httpReq.status == 200) {
var strRes = httpReq.responseText;
if(xmlOrig) strRes = (new $Xml(strRes, true)).conteudo(xmlOrig);
if(elemDest) $id(elemDest).innerHTML = strRes;
if(func) {
var dadosArray = new Array(4, strRes, httpReq, 'OK', 'Concluído com sucesso.');
window[func](dadosArray);
}
} else {
if(elemDest) elemDest.innerHTML = 'Erro: '+httpReq.status+' | '+httpReq.statusText;
if(func) {
var dadosArray = new Array(4, false, httpReq, 'erro', 'Erro, conteúdo não carregado!');
window[func](dadosArray);
}
}
} else if(func){
console.log("func? "+typeof(func));
var dadosArray = new Array(httpReq.readyState);
window[func](dadosArray); // <-- HERE IS THE ERROR!
}
}
然而,执行console.log返回“功能”的说法作为函数,所以哪里是错误?
Safari控制台:
func?功能 TypeError:'undefined'不是函数(评估'windowfunc')
你在哪里定义变量'func'是什么?你没有通过它或在任何地方定义它? – Gerrat
我在根中定义了一个测试函数。首先,我认为这是函数内部的一个错误,但是测试函数无关(作为一个测试)。我认为它可能是一个错误,Safari无法精确到哪里。 – Gustavo
我发现它:func必须是一个字符串,所以我不能定义func = Function,但是func =“NameOfTheFunction”。 – Gustavo