За последние 24 часа нас посетил 99341 программист и 3153 робота. Сейчас ищут 1222 программиста ...

Как поправить код в JavaScript

Тема в разделе "JavaScript и AJAX", создана пользователем sotex2, 17 дек 2025.

  1. sotex2

    sotex2 Активный пользователь

    С нами с:
    28 сен 2019
    Сообщения:
    24
    Симпатии:
    0
    Доброго времени суток. Подска'ите есть
    JavaScript скрипт он применяется в зенопостере. скрипт рабочий и предназначен для клика по надписи "Показать ещё 5", где цифра может меняться. надписи "Показать ещё 5" прикреплена к конкретному блоку "Нежилые помещения" и действия осуществляются только в этом блоке. сам скрипт отрабатывает и делает клик по надписи, но когда текст полностью исчезает даже из DOM страницы, то скрипт все равно продол'ает работать. как сделать так, чтобы после пропадания надписи скрипт прекращал работу. приложил скрипт и часть кода блока HTML. КОД БЛОКА HTML из DOM приложил


    Код (Text):
    1. (function() {
    2.     // Функция для клика по кнопке "Показать ещё"
    3.     function clickShowMore() {
    4.         try {
    5.             const titles = document.querySelectorAll('.FlatGroups__Title-sc-jd2s28-15');
    6.  
    7.             for (let i = 0; i < titles.length; i++) {
    8.                 const title = titles[i];
    9.  
    10.                 if (title.textContent.trim() === 'Студии') {
    11.                     const mainWrapper = title.closest('.FlatGroups__FlatGroupWrapper-sc-jd2s28-8');
    12.  
    13.                     if (mainWrapper) {
    14.                         const showMoreBtn = mainWrapper.querySelector('.FlatGroupDetails__ButtonMore-sc-1uwm85r-3');
    15.  
    16.                         if (showMoreBtn) {
    17.                             const buttonText = showMoreBtn.textContent.trim();
    18.  
    19.                             if (buttonText.includes('Показать ещё')) {
    20.                                 console.log('Кликаем по кнопке "Показать ещё"');
    21.                                 showMoreBtn.click();
    22.                                 console.log('Кликнули по кнопке "Показать ещё"');
    23.  
    24.                                 // Задержка (блокирующая, но более совместимая)
    25.                                 var start = new Date().getTime();
    26.                                 for (var j = 0; j < 1e7; j++) {
    27.                                     if ((new Date().getTime() - start) > 1000){
    28.                                         break;
    29.                                     }
    30.                                 }
    31.  
    32.                                 return "CLICKED"; // Кликнули, нужно повторить
    33.                             } else {
    34.                                 console.log('Кнопка "Показать ещё" не содержит ожидаемый текст.');
    35.                             }
    36.                         } else {
    37.                             console.log('Кнопка "Показать ещё" не найдена.');
    38.                         }
    39.                     }
    40.                 }
    41.             }
    42.  
    43.             console.log('Кнопка "Показать ещё" отсутствует. Завершаем работу.');
    44.             return "DONE"; // Кнопки нет, заканчиваем
    45.         } catch (error) {
    46.             console.error('Произошла ошибка:', error);
    47.             return "ERROR"; // Произошла ошибка
    48.         }
    49.     }
    50.  
    51.     let result = clickShowMore();
    52.     return result; // Возвращаем результат
    53. })();
     

    Вложения:

  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.830
    Симпатии:
    1.333
    Адрес:
    Лень
    никак, бот
     
  3. sotex2

    sotex2 Активный пользователь

    С нами с:
    28 сен 2019
    Сообщения:
    24
    Симпатии:
    0
    вот так ты и наганяешь статистику в профиле на заданные вопросы.
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.830
    Симпатии:
    1.333
    Адрес:
    Лень
    в 3х форумах именно так ты делаешь.
     
  5. sotex2

    sotex2 Активный пользователь

    С нами с:
    28 сен 2019
    Сообщения:
    24
    Симпатии:
    0
    а при чем здесь бот, а задаю один вопрос в нескольких форумах, потому что кто быстрей и правильно даст совет.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.830
    Симпатии:
    1.333
    Адрес:
    Лень
    "Кто быстрее сделает за меня". Читал все 4 форума.
    --- Добавлено ---
    Плоти.