0

iframeで90秒ごとにスポーツのスコアを表示しようとしています。一部を除いてすべてが機能しています。私が抱えている問題は、時間が90から0になると、htmlページをiframeにロードし、同じhtmlページを永久にリロードし続けることです。一度ロードしてから、90秒のカウントダウンを最初からやり直すにはどうすればよいですか?

// variables
var timeCountdown = 90,
  minutesCountdown,
  secondsCountdown,
  mainCountdown;
// main script countdown
mainCountdown = setInterval(function() {
  // display countdown time
  document.getElementById("countdown").innerText = mainCountdown + " seconds remaining!";
  // if time is 0 or smaller
  if (timeCountdown <= 0) {
        // load sports scores
        document.getElementById("iframe").src = "sports/nba/feed.html";
  } else {
        // convert random time to minutes
        minutesCountdown= Math.floor(timeCountdown / 60);
        //  convert random time to seconds
        secondsCountdown = (timeCountdown % 60);
        // add leading zero to seconds if less than ten
        if (secondsCountdown < 10) {
        secondsCountdown = "0" + secondsCountdown;
        }
        // add leading zero to minutes if less than ten
        if (minutesCountdown <= 10) {
        minutesCountdown = "0" + minutesCountdown;
        }
        // display countdown until next search
        document.getElementById("countdown").innerHTML = "Loading NBA scores in " + minutesCountdown + ':' + secondsCountdown;
        // reduce countdown time
        timeCountdown--;
  }
}, 1000);
4

2 に答える 2

1

0に達して、iFrameをロードしたら、90に戻すtimeCountdown必要があります。timeCountdown

于 2012-12-04T18:51:29.167 に答える
1

clearInterval(intervalId)が必要です。

あなたの場合、それは

if (timeCountdown <= 0) {
    window.clearInterval(mainCountdown);

あ、タイマーをリセットしますか?変数 timeCountdown を 90 に戻してください。

if (timeCountdown <= 0) {
    timeCountdown = 90;
于 2012-12-04T18:49:51.190 に答える