У меня возникла проблема с работой скрипта: он функционирует нормально до тех пор, пока не произойдет небольшая задержка в интернете, из-за которой объект с классом <pre><code class="javascript">const text = document.querySelector('.Tag-module_content__uLsTI').textContent;</code></pre> временно исчезает. Я не уверен, как это правильно проверить, и уже попробовал множество различных способов. Как мне поступить в данной ситуации?
Для проверки существования элемента на веб-странице с использованием TamperMonkey и обработки ситуации, когда элемент может временно отсутствовать, вы можете использовать `setInterval` для периодической проверки наличия элемента. Как только элемент будет найден, вы можете выполнить необходимые действия и остановить проверку. Вот пример такого подхода:
```javascript
// ==UserScript==
// @name Проверка Элемента
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Проверяет наличие элемента на странице
// @match *://your-website.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Функция для проверки существования элемента
function checkElement() {
const element = document.querySelector('.Tag-module_content__uLsTI');
if (element) {
// Если элемент найден, можно взять его текст и выполнить нужные действия
const text = element.textContent;
console.log('Элемент найден:', text);
// Здесь можно добавить код для выполнения других действий
// Остановить интервал после нахождения элемента
clearInterval(checkInterval);
}
}
// Запускаем проверку каждые 1000 миллисекунд (1 секунда)
const checkInterval = setInterval(checkElement, 1000);
})();
```
### Пояснение:
1. **Функция `checkElement`** — это функция, которая проверяет наличие элемента с классом `.Tag-module_content__uLsTI`. Если элемент найден, она выполняет необходимые действия (в данном случае просто выводит текст элемента в консоль) и останавливает дальнейшие проверки, вызывая `clearInterval`.
2. **Периодическая проверка** — с помощью `setInterval` проверяем наличие элемента каждую секунду (1000 миллисекунд).
3. **Остановка проверки** — как только элемент найден и обработан, интервал остановится, чтобы оптимизировать ресурсы.
Этот подход позволяет вашему скрипту корректно реагировать на временные задержки в загрузке элементов на странице.
Так попробуй
(function() { 'use strict'; let timerId; let timer = () => { const element = document.querySelector('.Tag-module_content__uLsTI'); // Проверяем, найден ли элемент if (element) { const text = element.textContent; if (text.slice(0, -1) < (-53)) { buy("ActionAnimatedSmallButtonZone_container__Gxja8 ActionAnimatedSmallButtonZone_desktop___1slH ActionAnimatedSmallButtonZone_type-cart__1GcmO"); setTimeout(buy1, 100); setTimeout(buy2, 100); console.log("Сработало"); setTimeout(clsmenu, 30000); setTimeout(rel, 35000); timerId = setTimeout(timer, 45000); } else { rel(); alert(text); timerId = setTimeout(timer, 1500); } } else { // Если элемент не найден, выполняем действия rel(); console.log("Элемент не найден, повторная проверка через 1500 мс"); timerId = setTimeout(timer, 1500); } } timerId = setTimeout(timer, 300); })();