2016-12-04 2 views
0

Я хотел спать «таймер», пока кто-то не решит, хочет ли он остаться или покинуть мой сайт после нажатия кнопки «выйти», чтобы время в фоновом режиме было заморожено , Но если он решит остаться, функция таймера должна продолжаться. Я не знаю, как это сделать. Может ли кто-нибудь мне помочь? Спасибо за все советы.Как поставить функцию сна при принятии решения в поле подтверждения

<!DOCTYPE html> 
<html> 
<body> 
<button onclick="exit();">exit</button> 
    <p id="seconds">30</p> 

    <script type="text/javascript"> 
     var clock; 



     function timer() { 
      clearInterval(clock); 
      var start = new Date().getTime(); 
      clock = setInterval(function() { 
       var seconds = Math.round(30 - (new Date().getTime() - start)/1000); 
       if (seconds >= 0) 
        document.getElementById('seconds').innerHTML = seconds; 
       else 
        clearInterval(clock); 



        if (seconds==0)  document.getElementById("fotka").innerHTML='<img src="mopsik.jpg"/>'; 




      }, 1000); 
     } 

     function exit(){ 

var result = confirm("Do you really want to leave this page?"); 
if (result == true) { 
window.location.href="www.something.com"; 
} 
else { 

} 
} 

     timer(); 
    </script> 
</body> 
</html> 
+0

«setInterval» выполняет функцию каждые X раз, вы можете очистить интервал в функции выхода и снова запустить функцию, если результат является ложным. –

ответ

0

Просто, когда пользователь нажимает на выходе, очистить интервал (это означает, что он не будет отсчитывать секунды больше), если результат ложно, начните интервал снова.

var clock; 
var start; 

function StartTimer() { 
    if (clock) { 
    clearInterval(clock); 
    } 
    start = new Date().getTime(); 
    startInterval(); 
} 

function startInterval() { 

    clock = setInterval(function() { 
    var seconds = Math.round(30 - (new Date().getTime() - start)/1000); 

    if (seconds >= 0) { 
     document.getElementById('seconds').innerHTML = seconds; 
    } else{ 
     clearInterval(clock); 
    } 

    if (seconds==0) 
     document.getElementById("fotka").innerHTML='<img src="mopsik.jpg"/>'; 

    }, 1000); 

} 

function exit() { 

    clearInterval(clock); 
    var result = confirm("Do you really want to leave this page?"); 

    if (result == true) { 
    window.location.href="www.something.com"; 
    } else { 
    startInterval(); 
    } 
} 
Смежные вопросы