如何让计时器在javascript中反复运行
我想制作一个20秒倒计时计时器,当计时器归零时,它将刷新iframe。然后在刷新如何让计时器在javascript中反复运行,javascript,jquery,html,iframe,timer,Javascript,Jquery,Html,Iframe,Timer,我想制作一个20秒倒计时计时器,当计时器归零时,它将刷新iframe。然后在刷新iframe后,计时器再次达到20秒,在它达到0后,它再次刷新iframe。我有一个js定时器脚本,可以刷新iframe,但是我不知道如何让这个脚本一次又一次地运行 <script> var tT; var timer=20; var stop; $(document).ready(function(){ tT=document.getElementById('timer'); tT.va
iframe
后,计时器再次达到20秒,在它达到0后,它再次刷新iframe
。我有一个js定时器脚本,可以刷新iframe
,但是我不知道如何让这个脚本一次又一次地运行
<script>
var tT;
var timer=20;
var stop;
$(document).ready(function(){
tT=document.getElementById('timer');
tT.value=timer;
stop=setInterval(function(){
if(timer>0){
timer--;
tT.value=timer;
}else{
clearInterval(stop);
}},1000);
setTimeout(function(){
document.getElementById('timer').value = timer;
document.getElementById('exchanger').src = document.getElementById('exchanger').src;
},20000);
});
</script>
var-tT;
无功定时器=20;
var停止;
$(文档).ready(函数(){
tT=document.getElementById('timer');
tT.值=计时器;
停止=设置间隔(函数(){
如果(计时器>0){
计时器--;
tT.值=计时器;
}否则{
清除间隔(停止);
}},1000);
setTimeout(函数(){
document.getElementById('timer')。value=timer;
document.getElementById('exchanger').src=document.getElementById('exchanger').src;
},20000);
});
Iframe:-
<input id="timer" value="20" type="text" size="2" readonly style="border:none;background:transparent;width:18px;text-align:center">
使用
这是你函数的代码
(function(){
// do some stuff
setTimeout(arguments.callee, 20000);
})()
此问题已在以下链接中标记,以供参考:
以下是一个示例代码,可以帮助您:
函数loadlink(){
$('#iframeId')[0].contentWindow.location.reload(true);
}
loadlink();//这将在页面加载时运行
var计数=1;
setInterval(函数(){
$(“.timer”).text(计数)
计数++;
如果(计数=20){
loadlink()//每20秒运行一次
计数=0;
}
}, 1000);代码>
我听从了阿尔布齐的建议(他对我的问题发表了评论),我
使用了setInterval而不是setTimeout,它成功了
最后的脚本是:
var tT;
var timer=20;
var stop;
$(document).ready(function(){
tT=document.getElementById('div-ID');
tT.value=timer;
stop=setInterval(function(){
if(timer>0){
timer--;
tT.value=timer;
}else{clearInterval(stop);
}},1000);
setInterval(function(){ // I changed setTimeout here
document.getElementById('Iframe-ID').src = document.getElementById('Iframe-ID').src;
timer=20;
},20000);
});
和HTML:
Iframe:
使用setInterval
而不是像以前那样使用setTimeout
。请始终格式化代码。如果它变得越来越长,它就很难跟随如果你不这么做。好的,我是新来的,所以请不要介意。$('iframeId')[0]。contentWindow.location.reload(true);在iframe id之前必须“#”吗?是的,因为它是iframe,所以它是必需的。或者,您可以删除iframe并刷新DIV容器。为DIV容器调整此代码很容易。它在000webhost.com上不起作用。我有一个解决方案,但我已经失去了它,解决方案是使用for循环,它工作得很好,但我删除了错误的脚本
var tT;
var timer=20;
var stop;
$(document).ready(function(){
tT=document.getElementById('div-ID');
tT.value=timer;
stop=setInterval(function(){
if(timer>0){
timer--;
tT.value=timer;
}else{clearInterval(stop);
}},1000);
setInterval(function(){ // I changed setTimeout here
document.getElementById('Iframe-ID').src = document.getElementById('Iframe-ID').src;
timer=20;
},20000);
});