>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >iMacros http://forum.mozilla-russia.org/viewforum.php?id=42 >[РЕШЕНО] Игнорировать ошибку в js http://forum.mozilla-russia.org/viewtopic.php?id=73248 |
S1m0n > 17-02-2018 13:45:33 |
Допустим есть такой код. скрытый текст Выделить код Код:for (i = 0; i < arr.length ; i++) var k = arr[i].querySelectorAll(".special")[0].textContent; При i = 0, 1, 2 код выполнятся не должен. То есть, я рассчитываю на то, что сработает код при значении скрытый текст Это число "3" всегда разное. Проблема в том, что работа скрипта останавливается, так как скрытый текст не существует и соответственно получаю ошибку в imacros:
При этом, код работает, когда условия сайта подстраиваются под скрытый текст и код работает верно пока i не дойдет до момента когда элемента не существует. Я нашел информацию, что можно воспользоватся: 1) скрытый текст Выделить код Код:try{ //code that causes an error }catch(e){ functionToHandleError(e); } //continue from here 2) скрытый текст Но это было безуспешно. код публикуется в тегах code под спойлером [i]InfSub |
S1m0n > 17-02-2018 14:42:23 |
Пытался добавить проверку в цикл, но всё равно ошибка. скрытый текст код публикуется в тегах code под спойлером InfSub |
Squatter > 17-02-2018 21:48:05 |
Логично пару проверок сделать. Как вариант, так скрытый текст Выделить код Код:var arr = content.document.querySelectorAll("selector"); if (arr.length === 0) { alert("Найдено эл-ов = " + arr.length); }//На случай если массив пуст for (i=0;i<arr.length;i++) { var parse = arr[i].querySelectorAll(".special"); if (parse.length === 0) { alert(parse);//Если не найдёт эл-ов с классом special } else { alert(parse[0].textContent);//Если найдёт эл-ты с классом special применяем .textContent } } В противном случае юзать try{...} catch(e){...} или вообще менять подход |