2
這在IE中不起作用。永遠 - 00:00:00 適用於Chrome,Firefox。 爲什麼? 我該如何解決它?定時器Javascript
function timer()
{
var now = new Date();
var enddate = new Date("07,12,2012,23:00:00");
var totalRemains = (enddate.getTime()-now.getTime());
if (totalRemains>1)
{
var RemainsSec=(parseInt(totalRemains/1000));
var RemainsFullDays=(parseInt(RemainsSec/(24*60*60)));
var secInLastDay=RemainsSec-RemainsFullDays*24*3600;
var RemainsFullHours=(parseInt(secInLastDay/3600));
if (RemainsFullHours<10){RemainsFullHours="0"+RemainsFullHours};
var secInLastHour=secInLastDay-RemainsFullHours*3600;
var RemainsMinutes=(parseInt(secInLastHour/60));
if (RemainsMinutes<10){RemainsMinutes="0"+RemainsMinutes};
var lastSec=secInLastHour-RemainsMinutes*60;
if (lastSec<10){lastSec="0"+lastSec};
var mcend = Date.parse("Jan 1, 2009, 00:00:00");
var mcnow = now.getTime();
var mc = ((mcend-mcnow)/10).toFixed(0).substr(8);
document.getElementById('timer').innerHTML = '<p class="timeline">TIME LEFT: '+ RemainsFullHours+":"+RemainsMinutes+":"+lastSec+'</p>';
setTimeout("timer()",10);
}
else {document.getElementById("timer").innerHTML = '<p class="timeline">TIME LEFT: 00:00:00</p>';}
}
<body onload="timer();">
你能幫助我嗎?
** **從未傳遞的字符串爲'的setInterval()'或'的setTimeout()' 。這樣做與使用'eval()'一樣糟糕,並且只要使用變量,就會導致不可讀和可能不安全的代碼,因爲您需要將它們插入到字符串中,而不是傳遞實際變量。正確的解決方案是'setInterval(function(){/ * your code *)},msecs);'。 'setTimeout()'同樣適用。如果你只想調用一個沒有任何參數的函數,你也可以直接傳遞函數名:'setInterval(someFunction,msecs);'(注意函數名後面有** no **'()') – ThiefMaster 2012-07-12 17:15:00