Как сохранить таймер, когда предупреждение отображается в JavaScript - PullRequest
0 голосов
/ 04 марта 2011

У меня есть функция Javascript, которая отображает таймер.Теперь, когда таймер достигает 2 минут, я хочу отобразить предупреждение и продолжить функцию таймера.Но моя функция таймера останавливается до тех пор, пока пользователь не нажмет «ОК», а затем возобновится с 1:59 с.

Может кто-нибудь сказать мне, как сохранить функцию таймера во время отображения всплывающего окна?

Вот моя функция для отображения таймера.

var minutes=5;
var seconds=59;

function time_display(){
  if(minutes==2 && seconds==0){
    setTimeout('display_time_alert_two_minutes_left()',100);
  }
  if (seconds<=0){
    seconds=59;
    if(minutes>0)
      minutes-=1;
  }
  else
    seconds-=1;
  $('time_left_in_minutes').innerHTML = minutes+"."+ ljust_zero(seconds);
  setTimeout("time_display()",1000);
}
time_display();

, и это моя функция оповещения.

function display_time_alert_two_minutes_left(){
    alert('Two minutes left');
}

Ответы [ 3 ]

3 голосов
/ 04 марта 2011

Alert является блокировщиком, используйте пользовательские всплывающие окна javascript, такие как лайтбокс, lytebox, диалог jquery, fancybox и т. Д.

Или вы можете просто показать / скрыть плавающий div.Это решит проблему застревания вашего таймера, а также улучшит ваш пользовательский опыт.

0 голосов
/ 04 марта 2011

Поскольку alert () останавливает выполнение остальной части кода javascript, было бы лучше использовать то, что не требует непостоянного стиля увеличения времени.

Как насчет того, чтобы вы на самом деле использовали время / датуфункциональность, которая будет «продолжать считать»?

Редактировать: Это остановит обновление веб-страницы, когда вы вызываете alert (), но будет продолжать нормально работать, пока открыто предупреждение.

0 голосов
/ 04 марта 2011

Как насчет того, чтобы использовать что-то, что не так навязчиво, например, это

...