>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >iMacros http://forum.mozilla-russia.org/viewforum.php?id=42 >[РЕШЕНО] что за ошибка TypeError: can't access dead object http://forum.mozilla-russia.org/viewtopic.php?id=70910 |
костя33 > 16-11-2016 15:54:18 |
цель скрипта пройти по списку stat.на каждой строке переход по ссылке и поиск предмета.сам предмет ищет функция.когда предмет не найден все работает.когда находит предмет забирает его и на следующем цикле выдает ошибку
в чем причина? на форуме внятного ответа не нашел.может кто подскажет.line 17 это строка for( var i=5;i<=stat.length+1;i++) скрытый текст Выделить код Код:var stat = window.document.getElementsByClassName(" white " ); case 2222: if(stat.length>0) for( var i=5;i<=stat.length+1;i++) { stat[i].click(); sund(); } function sund() { for( var a=1;a<100;a++) { if (iimPlay("Code:TAG POS=1 TYPE=IMG ATTR=SRC:https://st.astrastudio.ru/race/img/garage_box.png")>0 ) { iimPlay("Code:TAG POS=1 TYPE=IMG ATTR=SRC:https://st.astrastudio.ru/race/img/garage_box.png" + "\n"); } else { iimPlay("Code:BACK") ; break; } if (iimPlay("Code:TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Открыть<SP>сундук")>0 ) { iimPlay("Code:TAG POS=1 TYPE=BUTTON FORM=NAME:NoFormName ATTR=TXT:Открыть<SP>сундук" + "\n") iimPlay("Code:BACK") iimPlay("Code:BACK") iimPlay("Code:BACK") iimPlay("Code:BACK"); } else { iimPlay("Code:BACK") iimPlay("Code:BACK"); } break; } }; код публикуется в тегах code внутри спойлера InfSub |
костя33 > 17-11-2016 17:15:57 |
проблема решена |
InfSub > 17-11-2016 23:59:28 |
и в чем была проблема? |
костя33 > 18-11-2016 08:57:57 |
ну почему макрос переставал видеть переменную я так и не понял. ))) видимо это как то связано с восприятием аймакросом массивов и getElementByClassName.но проблему решил добавив в самом конце функции повтор определения переменной.то есть я переменную определяю дважды.в начале скрипта и в конце функции. в начале скрытый текст Выделить код Код:var st = content.document.getElementsByClassName(" orange " ) ; var stat = content.document.getElementsByClassName(" white " ) ; var s = content.document.getElementsByClassName(" light-orange " ); и после полного выполнения функции,но еще в самом теле функции скрытый текст Выделить код Код:} } st = content.document.getElementsByClassName(" orange " ) ; stat = content.document.getElementsByClassName(" white " ) ; s = content.document.getElementsByClassName(" light-orange " ); }; и все прекрасно заработало |