Money计数器适用于Chrome,Safari(Windows),Opera和IE,但不适用于Firefox。为什么?

时间:2014-11-24 20:26:10

标签: javascript firefox

我有一个计数器,每秒为我们的总数增加6美元,它会从特定的日期和时间开始计算,这样即使重新加载页面,它也会继续增加总数。

<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>

如问题中所述,除了Firefox 31.1.1之外,这适用于所有其他主要浏览器(我至少要测试)。我的代码中有什么东西会让这个突破吗?

这是一个 JSfiddle ,供您观察行为。记得在Firefox中查看小提琴。这个小提琴不是我的,但与我的相同,除了硬编码的价值。

1 个答案:

答案 0 :(得分:2)

您需要将innerText替换为innerHTML

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

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