0

我需要一个 JavaScript,它每 30 秒重新加载一个页面,并且会显示在 ID 时间更新之前有多少时间直到下一次重新加载,例如:

<p>Refreshing in <span id="time-to-update" class="light-blue"></span> seconds.</p>

我还需要它无限重复。

感谢您的阅读,我希望它不仅对我有帮助,而且对其他所有人都有帮助,如果您能制作这个脚本,真的非常感谢。

4

3 回答 3

1
(function() {
    var el = document.getElementById('time-to-update');
    var count = 30;
    setInterval(function() {
        count -= 1;
        el.innerHTML = count;
        if (count == 0) {
            location.reload();
        }
    }, 1000);
})();
于 2013-08-19T11:39:15.997 回答
1

使用 setTimeout 而不是 setInterval 的变体,并使用更安全的跨浏览器 document.location.reload(true);

var timer = 30;
var el = document.getElementById('time-to-update');

(function loop(el) {
  if (timer > 0) {
    el.innerHTML = timer;
    timer -= 1;
    setTimeout(function () { loop(el); }, 1000);
  } else {
    document.location.reload(true);
  }
}(el));
于 2013-08-19T11:52:50.680 回答
0

http://jsfiddle.net/zGGEH/1/

var timer = {
    interval: null,
    seconds: 30,

    start: function () {
        var self = this,
            el = document.getElementById('time-to-update');

        el.innerText = this.seconds; // Output initial value

        this.interval = setInterval(function () {
            self.seconds--;

            if (self.seconds == 0) 
                window.location.reload();

            el.innerText = self.seconds;
        }, 1000);
    },

    stop: function () {
        window.clearInterval(this.interval)
    }
}

timer.start();
于 2013-08-19T11:46:17.133 回答