如何解决document.forms [i] [j] .type出现问题,返回undefined
|| 我正在写一个Firefox插件。这是报价的一部分var cForm = \'\';
var doc = document;
for (i = 0; i < doc.forms.length; i++)
{
var a = doc.forms[i].name + \"\";
if ( a.search(\"itsMe\") != -1)
{
cForm = i;
}
}
//
if ( cForm != \'\' )
{
for (i = 0; i < doc.forms[cForm].length; i++)
{
var sTotal = \'doc.forms[\' + cForm + \'][\' + i +\'].type\';
if ( eval(sTotal) == \"button\")
{
return sTotal ;
}
}
}
第一个代码运行良好。第二代码显示错误,例如:\“ doc.forms [0] [0]未定义\”
怎么了??救命...
解决方法
问题可能出在您使用
eval
时;可能不知道doc
,因为它不在范围内。通常,应尽量避免使用eval
。在这种情况下,您确实不需要它,因此请尝试执行以下操作:
if (i.length && typeof(cForm) != \"undefined\")
{
cForm = parseInt(cForm);
for (i = 0; i < document.forms[cForm].length; i++)
{
if (document.forms[cForm][i].type == \"button\")
{
return sTotal ;
}
}
}
, doc.forms[0][0]
可能是一个文本区域,也就是说,它没有.type
。
另外,为什么要使用eval
???
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。