我想制作一个20秒的倒数计时器,当计时器变为零时,它会刷新iframe
。然后在刷新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>
iframe: -
<input id="timer" value="20" type="text" size="2" readonly style="border:none;background:transparent;width:18px;text-align:center">
答案 0 :(得分:0)
使用
setInterval(function, delay)
以下是您的功能代码
(function(){
// do some stuff
setTimeout(arguments.callee, 20000);
})();
供参考,此问题已在下面的链接中标记: Calling a function every 60 seconds
答案 1 :(得分:0)
以下是帮助您解决问题的示例代码:
sklearn
function loadlink() {
$('#iframeId')[0].contentWindow.location.reload(true);
}
loadlink(); // This will run on page load
var count = 1;
setInterval(function() {
$(".timer").text(count)
count++;
if (count == 20) {
loadlink() // this will run after every 20 seconds
count = 0;
}
}, 1000);
答案 2 :(得分:0)
我遵循了Albzi的建议(谁评论了我的问题),我 使用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:<div id="Div-ID"></div>
iframe:<iframe id="Iframe-ID" src="source-url"></iframe>