0

JavaScript のヘルプが必要です。このコードを使用して、プログラムの実行時間を取得しています。

if(seconds == sec){alert(sec);}

function countdown(element) {
    interval = setInterval(function() {
        var el = document.getElementById(element);    
        if(seconds == 0) {
          //alert(seconds);
          if(minutes == 0) {
            el.innerHTML = "00 : 00"; 
            alert("Sorry, you have exceeded our booking time and your order has been cancelled. We are afraid you have to start over!",null,'');
            clearInterval(interval);
            ajax_load_image();
            window.location.href='movies.html';
            return;
          } else {
            minutes--;
            seconds = 60;
          }
        }
        if(minutes > 0) {     
          var minute_text = minutes+(minutes > 1 ? ' ' : ' ');
        } else {
          var minute_text = '0';
        }
        if(minute_text<0)
        {
          $('#countdown').css('color','red');
        }
        var second_text =seconds > 1 ? '' : '';
        if(minute_text=='')
        {
          el.innerHTML ='0 : '+seconds;
        }
        else
        {
          if(seconds<10)
          {
            seconds='0'+seconds;
          }  
          el.innerHTML = '0'+minute_text + ' : ' + seconds + ' ' + second_text + ' Min';
        }
        seconds--;
    }, 1000);
}

モバイルをロックすると、タイマーが自動的に停止します。モバイルをロックしたときにタイマーを実行するにはどうすればよいですか。助けて。

4

1 に答える 1

0

経過した実際の時間が気になる場合は、信頼しないでくださいsetInterval()。代わりに、開始時刻を現在の時刻と比較してください。

var startTime = new Date();

setInterval(function() {
   // you might need to call .getTime() here - this works in Chrome,
   // but that might be implementation-dependent
   var seconds = ((new Date()) - startTime) / 1000;

   // etc
});

これがモバイル環境でどのように機能するかはわかりませんが、ロックを解除しsetInterval()て再度実行すると、適切にタイムアウトするはずです。

于 2012-08-04T06:32:07.533 に答える