Задать вопрос
ReSpawner
@ReSpawner

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

Иногда на сайте появляется затемнение экрана с просьбой обновить страницу. (т.к данные устарели)
Как сделать так чтобы при появлении "определённого элемента" на странице, в данном случае "затемнение экрана" , автоматически перезагружать её.
И повторять это каждый раз при появлении этого затемнения.
Возможно это можно сделать с помощью "Mutation Observer"

document.querySelector("#content > div > div.taskblackout")


это вызывает это затемнение через какое-то время. \прим. через 2-3 мин.
  • Вопрос задан
  • 405 просмотров
Подписаться 2 Средний 1 комментарий
Решения вопроса 1
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
miraage
@miraage
Старый прогер
Ваш ответ на вопрос

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

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