我使用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