我想要一个按钮,点击后会在指定的时间后刷新当前页面。
我目前有:
<script type="text/javascript">
setTimeout(function reload(){
location = ''
},1000)
</script>
<button onclick="reload()">Reload</button>
然而,即使不必点击按钮,也必须重新加载页面。我希望按钮执行脚本,还有一个按钮来停止页面重新加载。
这应该很简单,但我无法弄明白:(
****** ********** EDIT
我也希望脚本在点击按钮后在无限循环上运行。
答案 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)
你需要将整个事物包装在另一个函数中并通过单击按钮调用