Javascript,另一个“太多递归”的问题:邪恶的eval()的复仇
||
我正在为一个客户进行一个项目(一个很老的项目被复活)。
当我在Firefox中浏览该项目的JSP之一(在这种情况下为4.0,但我想它也与3.x一起发生)时,在Firebug控制台上会出现以下错误:
错误:递归过多
Archivo功能:https:// localhost:9443 / ClientProjectWeb / js / Object.js
利纳(Línea):226
这是该行的代码段:
if(gControl){giveFocusToControl(gControl.name);}
这是调用的函数:
function giveFocusToControl(nombreControl){
var forma = document.forms[0];
var campo = null;
if(forma){
var elemento = eval(\"forma.\"+nombreControl);
if(eval(elemento.length)){
if(elemento.type == \"select-one\" || elemento.type == \"select-multiple\"){
campo = elemento;
}else{
campo = elemento[0];
}
}else{
campo = elemento;
}
if(campo.style && campo.style.visibility){
if(campo.style.visibility != \"hidden\"){
campo.focus();
}
}else{
campo.focus();
}
}
}
我怀疑这与函数中的eval()
调用有关,但是尽管我尝试用本文档中建议的[]替代替换那些\“ evil \”调用,例如:var elemento = forma[nombreControl];
,但我没有得到预期的结果,错误仍然存在:同一行,同一条消息。
请问您有什么建议吗?提前致谢。
没有找到相关结果
已邀请:
1 个回复
门锑腺潮
,我一定要玩第二个调用才能获得评估它的最佳方法。 ѭ5的目的基本上是测试,以查看所关注的控件是否为列表。