setTimeout 和重新加载 iframe 的问题
我试图每 2 秒使用不同的页面更改 iframe 的 src,但到目前为止我失败了。谁能告诉我这段代码有什么问题吗?它仅加载最后一个文件 5.html,而不加载其他文件 1.html 2.html 3.html 和 4.html
function reloadiframe(nbr) {
setTimeout(function () {
document.getElementById("iframe").src = nbr + ".html";
}, 2000);
}
function reload() {
for (i=1;i<=5;i++) {
reloadiframe(i);
}
}
I'm trying to change the src of an iframe every 2 seconds with different page but I failed miserably so far. Can anyone tell me what's wrong with this code? It only loads the last file, 5.html and not the other ones, 1.html 2.html 3.html and 4.html
function reloadiframe(nbr) {
setTimeout(function () {
document.getElementById("iframe").src = nbr + ".html";
}, 2000);
}
function reload() {
for (i=1;i<=5;i++) {
reloadiframe(i);
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
setTimeout
不等待。超时几乎都是在同一时间触发的,因为它们都是在几乎完全相同的时间开始的。只需一个小小的改变就可以解决这个问题:setTimeout
does not wait. The timeouts all fire at pretty much exactly the same time, since they are all started at pretty much exactly the same time. Just a small change will fix the problem:您现在将重新加载延迟两秒钟。第 1、2、3 和 4 页实际上已加载,但很快被第 5 帧覆盖。
可以在
reloadiframe
中使用setTimeout
来延迟下一次重新加载,也可以使用setInterval
定期重新加载 iframe 或增加超时:使用
setInterval
的替代方案:You're now delaying the reload for two seconds. Page 1, 2, 3 and 4 actually get loaded, but are quickly overwritten by frame 5.
Either use
setTimeout
inreloadiframe
to delay the next reload, usesetInterval
to periodically reload the iframe or increase the timeout:Alternative using
setInterval
: