2013-03-14 81 views
0

當我設置setInterval(function()下降(或上升我猜,速度明智)至100500和不會加載mypage.php JavaScript太快,因爲它沒有時間我想?不想減慢反擊速度。那麼有沒有一個PHP的等價物可以? (像這樣的小數字顯示,請參閱jsfiddle)還是有更好的JavaScript計數器?會喜歡PHP,任何想法?JavaScript倒計時(倒計時)毫秒太快,不會加載下一頁?

感謝堆,任何幫助將是偉大的。

將頁面鏈接更改爲#,否則會凍結其他內容 http://jsfiddle.net/aEXgB/2/還添加exit;但沒有幫助。

<html> 
<head> 
<script type="text/javascript"> 
function countdown() { 
    var i = document.getElementById('counter'); 
    if (parseInt(i.innerHTML)>=3000) { 
     location.href = 'mypage.php'; 
     exit; 
    } 
    i.innerHTML = parseInt(i.innerHTML)+1; 
} 
setInterval(function(){ countdown(); },.75); 
</script> 
</head> 
<body> 

<div style="margin-left:20px; float:left;"><p>Countdown:<font color="#33CC00"> <span  id="counter">10 </span></font></p></div> 
</body> 
</html> 
+1

你意識到你刷新頁面上的每個循環,對不對? (請參閱您的小提琴頁上的瀏覽器的停止/刷新按鈕) – hexblot 2013-03-14 12:32:32

+1

哇,鉻錯誤。不能關閉頁面了。 – 2013-03-14 12:32:57

+0

修復了JSFiddle – Benjamin 2013-03-14 12:33:34

回答

0

取代

setInterval(function(){ countdown(); },.75); 

var t = setInterval(function(){ countdown(); },.75); 

然後就在函數退出前,加入;

clearInterval(t); 
+0

作品完全謝謝 – Benjamin 2013-03-14 12:46:35

0

JS:

var sec = 0; 
var interval = 750; // milliseconds 
var stop = 5; // seconds 
function pad (val) { return val > 9 ? val : "0" + val; } 
setInterval(function(){ 
    if(document.getElementById("seconds").innerHTML < stop) { 
     document.getElementById("seconds").innerHTML=pad(++sec%60); 
    } else { 
     location.href = 'http://google.nl' 
    } 
}, interval); 

HTML:

<div id="seconds></div> 

小提琴: http://jsfiddle.net/5tM3A/5/

+0

爲了讓這麼快?並加載mypage.php? – Benjamin 2013-03-14 12:38:33

+0

添加一個時間間隔變量(毫秒)。 – 2013-03-14 12:40:25

+0

在括號內,你可以做任何你想做的事。但每0.75秒加載一個頁面可能不是你能做的最好的事情.. – 2013-03-14 12:42:17

0

首先,我不明白爲什麼它被稱爲倒計時,當你數了。

第二,我認爲最好更新計數器然後檢查值。這樣你就沒有額外的電話coundown功能。

第三,清除更改位置之前的間隔,因爲間隔可能會再次被快速釋放。

四,這不會的jsfiddle實際工作,因爲的jsfiddle如何使用I幀:)

var interval = setInterval(function(){ countdown(); },.75); 
function countdown() { 
    var i = document.getElementById('counter'); 
    i.innerHTML = parseInt(i.innerHTML)+1; 
    if (parseInt(i.innerHTML)>=3000) { 
     clearInterval(interval); 
     window.location.href = "mypage.php"; 
    } 
} 
+0

謝謝,這是一個倒計時腳本逆轉:)不會工作,因爲iframes只是jsfiddle或任何iframe?怎麼樣嵌入? – Benjamin 2013-03-14 12:49:54

+0

你也可以將'parseInt(i.innerHTML)+ 1'設置爲一個變量,所以你不必解析兩次:) – 2013-03-14 12:50:56

+0

如果這個腳本在iframe中,我認爲你需要'window.parent.location。 href'。 – 2013-03-14 12:52:02