2014-11-24 15 views
0

我有一個計數器,它每秒鐘爲我們的總數增加6美元,它從一個特定的日期和時間開始計數,以便儘管重新加載頁面,它仍會繼續添加到總量中。在Chrome,Safari(Windows),Opera和IE中使用貨幣計數器,但不支持Firefox。爲什麼?

<span id="counter-value"></span> 


var amount = document.getElementById('counter-value'); 
var start = new Date("November 24, 2012 00:00:00").getTime(); 
var current; 
update(); 

function update() { 
    var current = (new Date().getTime() - start)/1000*6+138276343;//Starting total and number to increment total 
    amount.innerText = formatMoney(current); 
} 

setInterval(update,1000); 

function formatMoney(amount) { 
    var dollars = Math.floor(amount).toString().split(''); 
    var cents = (Math.round((amount%1)*100)/100).toString().split('.')[1]; 
    if(typeof cents == 'undefined'){ 
     cents = '00'; 
    }else if(cents.length == 1){ 
     cents = cents + '0'; 
    } 
    var str = ''; 
    for(i=dollars.length-1; i>=0; i--){ 
     str += dollars.splice(0,1); 
     if(i%3 == 0 && i != 0) str += ','; 
    } 
    return '$' + str + '.' + cents; 
    } 
</script> 

如問題所說,這部作品在所有其他主流瀏覽器(我想測試至少),除了火狐31.1.1。在我的代碼中有什麼東西正在使這個突破?

這裏是一個JSfiddle讓你觀察行爲。請記住在Firefox中查看小提琴。這個小提琴不是我的,但與我的相同,保存硬編碼的值。

+0

我的猜測是http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in更換的innerText -firefox – Huangism 2014-11-24 20:42:08

回答

2

你需要用innerHTML的

http://jsfiddle.net/dm6LL/167/

function update() { 
    var current = (new Date().getTime() - start)/1000*0.158+138276343; 
    amount.innerHTML = formatMoney(current); 
} 
+0

工程就像一個魅力!謝謝! – ExcellentSP 2014-11-24 20:46:41

相關問題