@sidorikv

Почему не работает скрипт?

Всех приветствую! Написал простенький скрипт с проверкой, суть скрипта, чтобы прожималась кнопка на сайте по селектору в определенное время ( время задается в скрипте ), но вот проблема, скрипт не работает если указывать миллисекунды. То есть, если проверка идет только по ччммсс, то все ок, прожимает в указанное время, а вот если добавить проверку по мс, то ничего не прожимается. Знатоки, прошу помочь, спасибо!

function doCheck() {
    const now = new Date();
    if (now.getHours() !== 17) { // часы
    timeout(60);
    } 
    else {
    if (now.getMinutes() !== 39) { // минуты
    timeout(30);
    } 
    else {
    if (now.getSeconds() !== 00) { // секунды
    timeout(15);
    } 
    else {
    if (now.getMilliseconds() !== 000) { // milекунды
    timeout(15);
    } 
    else {
    document.querySelector("какая то кнопка").click();
    }
    }
    }
    }
    }
    
function timeout(ms = 1) {
    setTimeout(() => {
    doCheck();
    }, ms);
    }
    
doCheck();
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
Stalker_RED
@Stalker_RED
Он вообще-то работает, но только с некоторым шансом.
if (now.getSeconds() !== 00) { // секунды 
    timeout(15);
    }
если секунда неподходящая, он ждет еще 15 миллисекунд.
И если следующая проверка now.getMilliseconds() !== 000 не произойдет РОВНО через 15 msec, то промах, и надо ждать еще сутки.

Вообще это плохой подход, не надо так. Проще посчитать на старте разницу между текущим временем и нужным и вызвать setTimeout сразу на нужное время.
Ответ написан
А зачем везде таймауты? Убери их и всё заработает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы