Javascript помогите! [дубликат]

151
16 августа 2018, 04:40

На данный вопрос уже ответили:

  • Как последовательно вызвать асинхронную функцию с коллбеками? 2 ответа

Я совсем не шарю в Java, в ответ прошу уже переделанный скрипт. Тема такая: делаю скрипт для chrome браузера(консоль), нужен для автоклика по ссылкам (классу, точнее). С помощью шаманов с ютуба смог написать вот этот скрипт:

var elements = document.getElementsByClassName('mainbut twitter');
for (var i = 0; i<elements.length;i++)
{
if ((elements[i].textContent) == "follow") elements[i].click();
}

Мне нужно внедрить в этот скрипт таймаут (паузу, грубо говоря) что бы при каждом нажатии на ссылку скрипт делал паузу, а не ждал после нажития на все ссылки. Пробовал взять всё в функцию и привязать к ней .setTimeout,Interval, но не помогает, так как делает паузу после либо до произведения всех кликов. Грубо говоря, скрипт прожимает все ссылки за минуту (без ожидания), а потом только ждет. Мне не вариант, забанят меня. Помогите люди добрые.

Answer 1

Вы можете ставить функции в равномерно распределённую во времени очередь.

Данный пример назначает исполнение каждого последующего действия на 200ms позже во времени:

let lastActionDelay = 0;
const delayedAction = fn => setTimeout(fn, lastActionDelay+=200);
var elements = document.getElementsByClassName('mainbut twitter');
for (var i = 0; i<elements.length;i++)
{
  let el = elements[i];
  if ((el.textContent) == "follow") {
    delayedAction(() => el.click());
  }
}
READ ALSO
Не получается загрузить скрипт c типом &ldquo;module&rdquo;

Не получается загрузить скрипт c типом “module”

В файле scriptjs есть фичи ЕS6 вроде import

186
Простой редактор изображений JS

Простой редактор изображений JS

Товарищи, возникла следующая проблема: сейчас работаю над одним сайтом, где появилась необходимость в простеньком редакторе изображений...

162
JS Cross Domain запрос на другой сайт

JS Cross Domain запрос на другой сайт

Я делаю скрипт для Tampermonkey и мне нужно сделать запрос на другой адресСамо собой мне выдает ошибку Access-Control-Allow-Origin

185
Ошибка при вызове метода

Ошибка при вызове метода

При вызове метода thisbindEvent(); возникает ошибка:

175