我使用Google地图显示一组图像作为叠加层。显示这些图像应该是无限循环的,但大多数浏览器都会检测到这一点,并显示警告。JavaScript中的无尽循环不会触发浏览器警告
有没有办法在JavaScript中创建一个无限循环,以便它不会被浏览器拦截或警告?
我使用Google地图显示一组图像作为叠加层。显示这些图像应该是无限循环的,但大多数浏览器都会检测到这一点,并显示警告。JavaScript中的无尽循环不会触发浏览器警告
有没有办法在JavaScript中创建一个无限循环,以便它不会被浏览器拦截或警告?
尝试的setInterval或setTimeout的
编辑:像这个简单的例子:http://n0p.com/so/63011.php
也许尝试使用它每次蜱时间检索下一个图像的计时器,不幸的是我不知道任何JavaScript,所以我无法提供代码示例
您应该使用计时器来连续带来新图像而不是无限循环。检查setTimeout()函数。需要注意的是,你应该调用它自己的函数,让它再次等待。从w3schools
<html>
<head>
<script type="text/javascript">
var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}
</script>
</head>
<body>
<form>
<input type="button" value="Start count!"
onClick="timedCount()">
<input type="text" id="txt">
</form>
</body>
</html>
采取实例,而不是使用一个无限循环的,使该保持射击每n秒计时器 - 你会得到“永远运行”方面没有浏览器挂起。
function foo() {
alert('hi');
setTimeout(foo, 5000);
}
然后,只需使用操作,如“的onload”开球“富”
下面的代码将设置的时间间隔和从图像源每秒的阵列设置图像到下一个图像。
function setImage(){
var Static = arguments.callee;
Static.currentImage = (Static.currentImage || 0);
var elm = document.getElementById("imageContainer");
elm.src = imageArray[Static.currentImage++];
}
imageInterval = setInterval(setImage, 1000);
如果它适合你的情况下,你可以继续加载新的图像来响应用户交互,像this website does(只是向下滚动)。
只是一个正式的答案:
var i = 0;
while (i < 1) {
do something...
if (i < 1) i = 0;
else i = fooling_function(i); // must return 0
}
我认为没有浏览器会检测到这样的事情。
这比简单地使用setInterval更复杂... – 2008-09-15 20:41:31
您应该使用`timedCount`而不是``timedCount()“`。没有理由你需要评估函数调用,而不是直接传递函数。 – 2011-09-19 13:26:36