2013-04-07 2 views
-2

Добавлено:Javascript Countdown & IE

Ok, чтобы добавить некоторые дополнительные подробности, как я думал, что вы должны были держать вопросы кратким , но это было downvoted из-за отсутствия исследований. Этот скрипт был о третьем или четвертом , что я пытался сделать то, что хотел, и работать в разных браузерах. Когда это было не работало, я искал ресурсы, чтобы помочь, и думал, что это может быть способ обратного отсчета выводится в том, что IE не нравится идентификатор ввода, поэтому пробовал другие способы его отображения, но не мог заставить его работать вопрос. На одном 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 & Chrome - есть ли способ, чтобы получить это работать в IE?

Заранее спасибо.

+1

Почему я downvoted этот вопрос: http://meta.stackexchange.com/a/149138/133242 –

+0

Sorry - Разве я сделал что-то неправильно ?? – onelove

+2

Ну, вы передаете строки в 'setTimeout' и ожидаете, что JavaScript будет в режиме реального времени (хотя это не так - почти, но не совсем). Вы также бросаете глобальную переменную повсюду, вместо использования параметров или областей ... Не похоже, что вы даже пытались получить базовое представление о коде, который вы используете. –

ответ

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

+0

- это не что-то :) – aliveli