• Как перезагружать страницу при появлении определённого элемента?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Самое простое и надёжное - проверять наличие элемента каждые N секунд (например, 5):
    setInterval(function () {
      const $element = document.querySelector("#content > div > div.taskblackout");
    
      if ($element && $element.style.display === 'block') {
        document.location.reload()
      }
    }, 5000);

    Единственный минус этого решения - задержка. Элемент может появиться сразу после срабатывания и провисит эти N секунд.
    Ещё, если вы часто уходите с этой вкладки, может накопиться очередь из интервалов - в этом случае лучше заменить на setTimeout, который внутри будет вызывать следующий setTimeout:
    const check = () => {
      const $element = document.querySelector("#content > div > div.taskblackout");
    
      if ($element && $element.style.display === 'block') {
        document.location.reload()
      } else {
        setTimeout(check, 5000);
      }
    };
    
    setTimeout(check, 5000);
    Ответ написан
    1 комментарий