Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 22.12.2020
Сообщений: 5

Проблема с функцией setTimeout

05.09.2022, 17:59. Показов 805. Ответов 4

Студворк — интернет-сервис помощи студентам
Написал код для проверки существования блока на сайте. Функция setTimeout(TestBlock, 1000); не делает нужную задержку.
Также почему-то не выполняется инкремент переменной iteratuon. В чем ошибка кода?

Код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    'use strict';
    // Your code here...
 
    var status = false;
 
    function TestBlock() {
        if (!document.querySelector('#top-level-buttons-computed > ytd-button-renderer:nth-child(5)')) {
            console.log('меня нет на странице');
            status = false;
        } else {
            console.log('я присутствую');
            status = true;
        }
    }
 
    console.log('Запуск скрипта');
    while (true) {
        var iteratuon = 0;
        setTimeout(TestBlock, 1000); // не работает
        iteratuon++; // не выполняется
        console.log('Итерация -', iteratuon);
        if (status) break;
        if (iteratuon === 10) break;
    }
 
    document.querySelector('#top-level-buttons-computed > ytd-button-renderer:nth-child(5)').remove();
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2022, 17:59
Ответы с готовыми решениями:

Проблема с SetTimeout
Доброго времени суток. Недавно начал изучать JS. Есть такой небольшой код: $(document).ready(function() { ...

Проблема с функцией
Скажите как ее решить код ненадо хотябы строчку этой функции как будет выглядить

Проблема с функцией
def(x, y): i = 0 while i != y: cls() n1 = random.randint(1, x) n2 = random.randint(1, x) ...

4
250 / 184 / 58
Регистрация: 12.03.2021
Сообщений: 1,043
05.09.2022, 18:02
JavaScript
1
setTimeout(TestBlock(), 1000);
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
05.09.2022, 21:20
Лучший ответ Сообщение было отмечено PoolSmoke как решение

Решение

PoolSmoke, у вас на каждой итерации цикла while заново объявляется переменная с говорящим именем iteratuon, поэтому цикл будет выполняться бесконечно. Код запускать не стал, он просто повесит браузер. Как вы представляете себе "нужную задержку"? Код, следующий за вызовом setTimeout, должен ждать секунду? Если да, то setTimeout не так работает.
0
1 / 1 / 0
Регистрация: 22.12.2020
Сообщений: 5
06.09.2022, 09:23  [ТС]
Переписал код, спасибо за поддержку.


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'use strict';
 
console.log('[Script] Запуск скрипта');
 
function TestBlock() {
    if (!document.querySelector('#top-level-buttons-computed > ytd-button-renderer:nth-child(5)')) {
        console.log('[Script] меня нет на странице');
    } else {
        console.log('[Script] я присутствую');
        document.querySelector('#top-level-buttons-computed > ytd-button-renderer:nth-child(5)').remove();
        console.log('[Script] удалено');
        clearInterval(timerId);
    }
}
 
let timerId = setInterval(TestBlock, 500);
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
06.09.2022, 10:18
PoolSmoke, вариант с setTimeout:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"use strict";
 
console.log("[Script] Запуск скрипта");
/*
 *@param {string} selector - селектор
 *@param {number} [maxTime] - максимальное время ожидания. Необязательный
 *@param {number} [startTime] - не надо явно задавать
 *
 */
function testBlock(selector, maxTime = 30, startTime = Date.now()) {
  const element = document.querySelector(selector);
  if (!element) {
    console.log("[Script] меня нет на странице");
    if (Date.now() - startTime > maxTime * 1000) {
      console.log(`[Script] меня нет ${maxTime} секунд. Не ждите меня.`);
      return;
    }
    setTimeout(() => {
      testBlock(selector, maxTime, startTime);
    }, 500);
  } else {
    console.log("[Script] я присутствую");
    element.remove();
    console.log("[Script] удалено");
  }
}
 
testBlock("#top-level-buttons-computed > ytd-button-renderer:nth-child(5)");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2022, 10:18
Помогаю со студенческими работами здесь

Проблема с функцией
Всем привет. Делая небольшой проект, натыкаюсь на некую проблему с присваиванием. Вот код для исследования моей проблемы: list_list =...

Проблема с функцией
#include <iostream> #include <cmath> #include <windows.h> #include <stdlib.h> #include <iomanip> using namespace std; ...

Проблема с функцией
Помогите пожалуйста , в чем заключается ошибка? И как сделать так чтобы при вводе "mining stop" Функция выключалась? :help: ...

Проблема с функцией find
неожиданный трабл x=0.1:0.1:100; find(x==16) ans = 160 find(x==17) ans = 1×0 empty double row vector find(x==18) ans = ...

Проблема с функцией пользователя.
Доброй ночи, форумчане. Помогите пожалуйста определить в чем ошибка: #include <iostream> using namespace std; int sum(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru