Здравствуйте, подскажите как реализовать?
Задача такая, выполняется определенный цикл, в этом цикле когда доходит до определенного места, требуется сделать как бы еще один цикл с проверкой по времени, проверять каждую минуту чтото, после того как прошло допустим 30 минут прерываться и продолжать основной цикл с того же места!
попытался что то сделать но не получается, отдельно работают, а вместе нет только не ругайтесь я не программист!
for (i=8;1<2;i++){//создаем переменную i, цикл будем выполнять 3 раза var macro; // создаем переменную macro macro = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос macro += "SET !DATASOURCE D:\\iMacros\\Macros\\clubid.txt" + "\n"; // подключаем текстовый файл macro += "SET !DATASOURCE_LINE "+i+ "\n";// из какой по счету строки брать данные macro += "ADD !EXTRACT {{!COL1}}" + "\n"; // берем данные в переменную {{!COL1}} iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали. var clubid = iimGetLastExtract(1)// создаем переменную clubid в которую помещаем EXTRACT if(clubid!=null){ iimDisplay('строка '+ i +' запрос '+ clubid) // macro += "URL GOTO={{!COL1}}" + "\n"; // заходим по ссылке macro += "EVENT TYPE=CLICK SELECTOR=#page_add_media>DIV>A BUTTON=0" + "\n"; // нажимаем добавить фото macro += "TAG POS=1 TYPE=DIV ATTR=CLASS:photos_choose_row_bg&&TXT:" + "\n"; // добавляем фото из галереи macro += "TAG POS=1 TYPE=BUTTON ATTR=ID:send_post" + "\n"; // нажимаем опубликовать imPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали. // начать повторы с интервалом 1 минута var timerId = window.setInterval(function() { iimDisplay('просмотр ');// это просто для отладки var poisk; poisk = content.document.getElementById('top_notify_count').textContent; if (poisk >= 1){ var macro2; macro2 += "TAG POS=1 TYPE=SPAN ATTR=TXT:Друзья"; macro2 += "TAG POS=1 TYPE=BUTTON ATTR=ID:accept_request"; iimDisplay('нихера нет') // для отладки } /*else { iimDisplay('Ога'+ poisk); }*/ }, 30000); // через 5 мин остановить повторы window.setTimeout(function() { window.clearInterval(timerId); alert( 'стоп' ); }, 300000); } else { iimDisplay('Cтрока пуста, прошли строк: '+ (i-1)) break } }
Отсутствует
Можно использовать: while, do while, for.
for (var a = НАЧАЛЬНОЕ ЗНАЧЕНИЕ; УСЛОВИЕ; ЧТО ДЕЛАТЬ ЗА ОДНУ ИТЕРАЦИЮ){ if (УСЛОВИЕ){ for (var b = НАЧАЛЬНОЕ ЗНАЧЕНИЕ; УСЛОВИЕ; ЧТО ДЕЛАТЬ ЗА ОДНУ ИТЕРАЦИЮ){ //ЖДАТЬ ОПРЕДЕЛЕННОЕ ВРЕМЯ if (УСЛОВИЕ) break; } } }
window.setTimeout и window.setInterval - работают асинхронно.
Отредактировано EverythingForYou (20-04-2017 07:25:32)
Отсутствует
EverythingForYou
for (i=8;1<2;i++) {var macro; // создаем переменную macro macro = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос macro += "SET !DATASOURCE D:\\iMacros\\Macros\\clubid.txt" + "\n"; // подключаем текстовый файл macro += "SET !DATASOURCE_LINE "+i+ "\n";// из какой по счету строки брать данные macro += "ADD !EXTRACT {{!COL1}}" + "\n"; // берем данные в переменную {{!COL1}} iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали. var clubid = iimGetLastExtract(1)// создаем переменную clubid в которую помещаем EXTRACT if (clubid!=null){ iimDisplay('строка '+ i +' запрос '+ clubid) // macro += "URL GOTO={{!COL1}}" + "\n"; // заходим по ссылке macro += "EVENT TYPE=CLICK SELECTOR=#page_add_media>DIV>A BUTTON=0" + "\n"; // нажимаем добавить фото macro += "TAG POS=1 TYPE=DIV ATTR=CLASS:photos_choose_row_bg&&TXT:" + "\n"; // добавляем фото из галереи macro += "TAG POS=1 TYPE=BUTTON ATTR=ID:send_post" + "\n"; // нажимаем опубликовать iimPlay(macro); // вызываем переменную запуская тем самым код, который туда вписали. for (proverka=0;proverka<30;proverka++){ var poisk; poisk = content.document.getElementById('top_notify_count').textContent; if (poisk >= 1) { var macro2; macro2 = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос macro2 += "TAG POS=1 TYPE=SPAN ATTR=TXT:Друзья"; macro2 += "TAG POS=1 TYPE=BUTTON ATTR=ID:accept_request"; iimDisplay('нихера нет'); // для отладки iimPlay(macro2); iimPlayCode('WAIT SECONDS=60'); } if (proverka=30) break; } } }
Отредактировано A_v_P (20-04-2017 13:28:03)
Отсутствует
Просто так быть не может. Логично предположить, что не срабатывает условие.
Отсутствует