2013-04-07 48 views
-2

補充:的Javascript倒計時&IE

好爲我想你必須保持簡潔的問題,但 已經downvoted爲缺乏研究增加一些額外的細節。這個腳本大約是第三個或第四個 ,我試圖做我想做的事,並在各種瀏覽器上工作。當它做 不工作時,我搜索資源來幫助,並認爲它可能是輸出倒計數的方式,因爲IE不喜歡輸入ID,所以嘗試了其他方式來顯示它,但無法讓它工作這個問題。沒有錯誤顯示一個IE它只是不顯示任何東西 - 因此它只是對輸入ID的猜測。

我發現這段JavaScript代碼 - 甚至在這裏下車,它不正是我想要 ,並顯示了在FF & Chrome的罰款。不幸的是,雖然它並沒有在IE中顯示倒計時 ,並且想知道是否有任何方法改變倒計時的方式,即可以與IE兼容的 輸出。

下面是我使用的代碼:

<script type="text/javascript"> 
// set minutes 
var mins = 5; 

// calculate the seconds (don't change this! unless time progresses at a different speed for you...) 
var secs = mins * 60; 
function countdown() { 
    setTimeout('Decrement()',1000); 
} 
function Decrement() { 
    if (document.getElementById) { 
     minutes = document.getElementById("minutes"); 
     seconds = document.getElementById("seconds"); 
     // if less than a minute remaining 
     if (seconds < 59) { 
      seconds.value = secs; 
     } else { 
      minutes.value = getminutes(); 
      seconds.value = getseconds(); 
     } 
     secs--; 
     setTimeout('Decrement()',1000); 
    } 
} 
function getminutes() { 
    // minutes is seconds divided by 60, rounded down 
    mins = Math.floor(secs/60); 
    return mins; 
} 
function getseconds() { 
    // take mins remaining (as seconds) away from total seconds remaining 
    return secs-Math.round(mins *60); 
} 
</script> 

而像這樣顯示的:

<div id="timer"> 
Time Ending In: <input id="minutes" type="text"> minutes and <input id="seconds"   type="text"> seconds. 
</div> 
    <script> 
    countdown(); 
    </script> 

正如我說在FF &鉻細上面顯示 - 有沒有什麼辦法讓它在IE中工作?

在此先感謝。

+1

爲什麼我downvoted這個問題:http://meta.stackexchange.com/a/149138/133242 – 2013-04-07 02:05:28

+0

對不起 - 我是否做錯了什麼事? – onelove 2013-04-07 02:18:14

+2

那麼你正在向'setTimeout'傳遞字符串,並期望JavaScript是實時的(儘管它不是 - 幾乎,但不是很完美)。你也會在所有地方拋出一個全局變量,而不是使用參數或範圍......它看起來並不像你甚至試圖對你正在使用的代碼有一個基本的理解。 – 2013-04-07 02:23:24

回答

0
<script type="text/javascript"> 

var minutes, seconds; 

// set minutes 
var mins = 5; 

// calculate the seconds (don't change this! unless time progresses at a different speed for you...) 
var secs = mins * 60; 

function countdown() { 
    setTimeout('Decrement()',1000); 
} 
function Decrement() { 
     minutes = document.getElementById("minutes"); 
     seconds = document.getElementById("seconds"); 
     // if less than a minute remaining 
     if (seconds < 59) { 
      seconds.value = secs; 
     } else { 
      minutes.value = getminutes(); 
      seconds.value = getseconds(); 
     } 
     secs--; 
     setTimeout('Decrement()',1000); 

} 
function getminutes() { 
    // minutes is seconds divided by 60, rounded down 
    mins = Math.floor(secs/60); 
    return mins; 
} 
function getseconds() { 
    // take mins remaining (as seconds) away from total seconds remaining 
    return secs-Math.round(mins *60); 
} 
</script> 
<div id="timer"> 
Time Ending In: <input id="minutes" type="text"> minutes and <input id="seconds" type="text"> seconds. 
</div> 
    <script> 
    countdown(); 
    </script> 
+0

非常感謝aliveli爲您提供的幫助 - 感激 - 現在全部修好了。 – onelove 2013-04-07 02:51:42

+0

是不是:) – aliveli 2013-04-07 03:02:49

0

<script type="text/javascript">... var minutes, seconds; ...