@Flipflap

Как сделать условие JavaScript с помощью setinterval?

Мне нужно, чтобы скрипт срабатывал раз в опредлённое время, только если условие вернуло TRUE.

Для этого, я написал такой код, но подозреваю, что он не верный
<script>
var modal = document.getElementById("mymodal");
var btn = document.getElementById("close");

function show () {
	if (document.URL.indexOf("/testurl/") != -1);
        modal.style.display = "block";
}

         btn.onclick = function() {
         modal.style.display = "none";
     }

setInterval(show, 10000);
</script>


Дело в том, что скрипт работает с интервалом игнорируя условие, будто оно вечно TRUE. ( познания в JS очень не глубокие, поэтмоу прошу не закидывать тухлыми помидорами )
  • Вопрос задан
  • 173 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Absolute138
function show () {
  if (document.URL.indexOf("/testurl/") != -1){
        modal.style.display = "block";
  }
}
  btn.onclick = function() {
         modal.style.display = "none";
  }
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Ошибка в точке запятой после ifif (document.URL.indexOf("/testurl/") != -1);if обрабатывает пустую операцию, все что дальше уже вне if

Поэтому всегда заключайте тело условий и циклов в фигурные скобки.

Нормальный вариант уже предложен Absolute138

Но остается вопрос, зачем здесь вообще интервал?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы