如何在 javascript 中的 for 循环中中断
How to make a break in a for loop in javascript
我想中断 javascript 中的 for 循环。
我的实际代码是
<p id="1">The video opens</p>
<script>
for(i=0; i<5; i++) {
myWindow = window.open("VIDEO");
document.getElementById("1").innerHTML = "Wait";
setTimeout(myWindow.close(), 10000);
}
</script>
视频应在新标签页中开始播放 10 秒,然后关闭。
然后它再次开始,播放 anozher 时间 10 秒并关闭视频等......
但是超时不是真正的超时。它只使 myWindow.close() 在 10 秒后出现
这意味着,所有 10 个视频开始,然后 10 秒后,一个视频关闭。
我怎样才能让它正常工作?
用 setInterval 函数更改 setTimeout,setInterval 函数用于循环,它是 运行 每 10 秒,例如随心所欲
我想你是说你想制作十个视频一次一个。
如果是这样,您不能为此使用 for
循环,您必须使用 setInterval
或一系列 setTimeout
。在这种情况下我会选择后者:
// IIFE to keep our variables private
(function() {
// Counter
var i = 0;
// Show the first video
showVideo();
// Function for showing the current video identified by `i`
function showVideo() {
var myWindow = window.open("VIDEO"); // Presumably use `i` here
document.getElementById("1").innerHTML = "Wait";
setTimeout(function() {
// Close the window
myWindow.close();
// Done yet?
if (++i < 10) {
// No, show the next video
showVideo();
}
}, 10000);
}
})();
我想中断 javascript 中的 for 循环。 我的实际代码是
<p id="1">The video opens</p>
<script>
for(i=0; i<5; i++) {
myWindow = window.open("VIDEO");
document.getElementById("1").innerHTML = "Wait";
setTimeout(myWindow.close(), 10000);
}
</script>
视频应在新标签页中开始播放 10 秒,然后关闭。 然后它再次开始,播放 anozher 时间 10 秒并关闭视频等...... 但是超时不是真正的超时。它只使 myWindow.close() 在 10 秒后出现 这意味着,所有 10 个视频开始,然后 10 秒后,一个视频关闭。 我怎样才能让它正常工作?
用 setInterval 函数更改 setTimeout,setInterval 函数用于循环,它是 运行 每 10 秒,例如随心所欲
我想你是说你想制作十个视频一次一个。
如果是这样,您不能为此使用 for
循环,您必须使用 setInterval
或一系列 setTimeout
。在这种情况下我会选择后者:
// IIFE to keep our variables private
(function() {
// Counter
var i = 0;
// Show the first video
showVideo();
// Function for showing the current video identified by `i`
function showVideo() {
var myWindow = window.open("VIDEO"); // Presumably use `i` here
document.getElementById("1").innerHTML = "Wait";
setTimeout(function() {
// Close the window
myWindow.close();
// Done yet?
if (++i < 10) {
// No, show the next video
showVideo();
}
}, 10000);
}
})();