document.forms [i] [j] .type的问题,返回undefined

时间:2011-05-28 00:15:31

标签: javascript firefox firefox-addon

我正在写一个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]未定义”

什么错?帮助...

2 个答案:

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

    }
}

答案 1 :(得分:0)

例如,

doc.forms[0][0]可能是一个textarea,这会使它没有.type

另外,为什么你使用eval,确切地说???