每隔一分钟刷新一次页面的按钮等?

时间:2014-09-19 13:49:07

标签: javascript jquery

我想要一个按钮,点击后会在指定的时间后刷新当前页面。

我目前有:

<script type="text/javascript">
  setTimeout(function reload(){
    location = ''
  },1000)
</script>

<button onclick="reload()">Reload</button>

然而,即使不必点击按钮,也必须重新加载页面。我希望按钮执行脚本,还有一个按钮来停止页面重新加载。

这应该很简单,但我无法弄明白:(

****** ********** EDIT

我也希望脚本在点击按钮后在无限循环上运行。

4 个答案:

答案 0 :(得分:6)

在页面加载时调用您的setTimeout。您需要将其放在reload()函数中:

function reload() {
    setTimeout(function() {
        window.location.reload();
    }, 1000);
}

要使计时器每x秒运行一次,只重新加载页面的一部分,你需要使用setInterval和一个AJAX请求,如下所示:

var timer;
function reload() {
    timer = setInterval(function() {
        $.post('foo.html', function(data) {
            $('#bar').html(data);
        });
    }, 1000);
}

function clear() {
    clearInterval(timer);
}

答案 1 :(得分:2)

这应该可以解决问题

<script type="text/javascript">
  function reload(){
    setTimeout(function(){location.reload()}, 3000);
  }
</script>

<button onclick="reload()">Reload</button>

答案 2 :(得分:1)

你写的是

window.setTimeout("location = ''"; ,1000);

你说1秒后执行这个功能。您需要在函数内定义setTimeout。还有一个内置的方法来重新加载页面。调用它而不是将位置设置为空字符串。

function reload() {
    setTimeout( function() {
        window.location.reload(true);
    },1000);
}

现在要取消超时,您需要使用clearTimeout(timeoutId);您从调用它时返回的setTimeout返回的整数中获取timeoutId。

var timer = null;
function reload() {
    timer = window.setTimeout( function() {
        window.location.reload(true);
    },1000);
}

function cancelReload() {
    if (timer)  {
        window.clearTimeout(timer);
    }
    timer = null;
}

你说你希望它继续运行。这将需要cookie或localstorage。

var timer = null;
function reload() {
    localStorage.reload = true;  //set localstorage so we know to fire it off again
    timer = window.setTimeout( function() {
        window.location.reload(true);
    },1000);
}

function cancelReload() {
    if (timer)  {
        window.clearTimeout(timer);
    }
    timer = null;
   localStorage.removeItem("reload");  //remove the key in localstorage
}

if (localstorage.reload) {  //check localstorage to see if key is set
    reload();
}

答案 3 :(得分:0)

你需要将整个事物包装在另一个函数中并通过单击按钮调用