Javascript 需要帮助查找用于在网页之间连续循环的setTimeout函数的剩余时间吗

Javascript 需要帮助查找用于在网页之间连续循环的setTimeout函数的剩余时间吗,javascript,iframe,timer,settimeout,countdowntimer,Javascript,Iframe,Timer,Settimeout,Countdowntimer,我目前正在使用javascript setTimeout函数,每10秒在相同的4个不同的网站上不断循环。我需要一个准确的方式来显示倒计时多少秒前,下一个网站显示。有没有办法减去已用于创建计时器的setTimeout函数中使用的时间?以下是我正在使用的当前Javascript: <script type="text/javascript"> var pages = [ 'webpage 1', 'webpage 2', 'webpage 3', 'webpage 4' ], p = p

我目前正在使用javascript setTimeout函数,每10秒在相同的4个不同的网站上不断循环。我需要一个准确的方式来显示倒计时多少秒前,下一个网站显示。有没有办法减去已用于创建计时器的setTimeout函数中使用的时间?以下是我正在使用的当前Javascript:

<script type="text/javascript">
var pages = [
'webpage 1',
'webpage 2',
'webpage 3',
'webpage 4'
], p = pages.length;
while(--p > -1){
(function(p){
    var a = document.createElement('a');
    a.href = pages[p];
    pages[p] = a;
})(p);
}
function loadIframe() {
var page = pages[(p = ++p % pages.length)], bust = 'bustcache=' + new 
Date().getTime();
page = page.search? page.href + '&' + bust : page.href + '?' + bust;
document.getElementById('if_one').src = page;
setTimeout(loadIframe, 10000);
}
loadIframe();
</script>

变量页=[
"网页1",,
"网页2",,
"网页3",,
“第4页”
],p=页数。长度;
而(--p>-1){
(职能(p){
var a=document.createElement('a');
a、 href=页面[p];
页数[p]=a;
})(p) );
}
函数loadIframe(){
var page=pages[(p=++p%pages.length)],bust='bustcache='+new
Date().getTime();
page=page.search?page.href+'&'+半身像:page.href+'?'+半身像;
document.getElementById('if_one')。src=page;
setTimeout(loadIframe,10000);
}
loadIframe();

虽然您无法直接从
setTimeout()
中看到它,但只需记录开始时间并进行一点计算即可:

const delay = 10000;
const start = Date.now(); // milliseconds
setTimeout(doSomething, delay);

// when needed
const elapsed = Date.now() - start;
const remaining = delay - elapsed; // divide by 1000 for seconds

是的,这是我想到的

var页面=[
"网页1",,
"网页2",,
"网页3",,
“第4页”
];
var秒=10;
var pageIndex=0;
var el=document.querySelector('p');
var div=document.querySelector('div');
渲染(秒,页面索引);
setInterval(函数(){
秒--;
如果(秒===0){
秒=10;
pageIndex++;
如果(pageIndex>pages.length-1){pageIndex=0}
}
渲染(秒,页面索引);
}, 1000);
函数渲染(秒,pIndex){
el.textContent=sec+“剩余秒数…”;
div.textContent=页面[pIndex];
}
倒计时
请稍候


Page
计时器工作正常,但在0处停止。有没有可能让它以与网页变化相同的速度再次刷新并从10倒计时到0?@DustinVondross我更新了我的答案。如果回答了你的问题,请考虑将投票或接受作为正确的答案。我需要回到StimTimeOutt进行网页循环,因为我需要它来连续地在四个网页之间循环。当我使用setTimeout作为网页循环,使用setInterval作为计时器时,它几乎是正确的,但大约一个小时后,它会关闭一秒钟。想象一下,这段时间将继续增长。
setTimeout
并不是为了准确。有关如何实现精确性的一些想法,请参阅。谢谢,我没有看到示例?我似乎无法实现这一点。这就是JavaScript,对吗?HTML元素是什么样子的?您只需定期调用
setInterval()
或其他任何方法,然后只需设置
或其他方法的文本。有很多不同的方法可以做到这一点。剩余的值对于我们其他地方来说只是一个数字。没有任何运气,我会这样称呼它吗?