Проблема с document.forms [i] [j] .type, возвращает неопределенное - PullRequest
1 голос
/ 28 мая 2011

Я пишу аддон 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 ;
        } 

    }
}

Первый код работает хорошо. 2-й код показывает ошибку вроде: "doc.forms [0] [0] не определено"

что не так ?? помочь ...

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

doc.forms[0][0] может быть, скажем, текстовой областью, из-за которой у него не будет .type.

В отдельном примечании, почему вы используете eval, точно ???

0 голосов
/ 28 мая 2011

Возможно, проблема в использовании 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 ;
        } 

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...