2015-01-06 3 views
0

Я следую учебнику JS и просто сделал ипотечный калькулятор, который работает как шарм в Chrome, но ничего не делает в Firefox. Могу ли я получить помощь в этом, пожалуйста? Here's the whole thing:Сценарий, работающий в Chrome, но не в firefox

// Formula: c = ((p * r) * math.pow((1 + r), n))/(math.pow((1 + r), n) - 1) 

//@param p float Amount borrowed 
//@param r interest as percentage 
//@param n term in years 

function percentToDecimal(percent) { 
return (percent/12)/100; 
} 

function yearsToMonths(years) { 
return years * 12; 
} 

function calculateMortgage(p, r, n) { 
// convert this percentage to decimal: 
r = percentToDecimal(r); 
n = yearsToMonths(n); 

var pmt = ((p * r) * Math.pow((1 + r), n))/(Math.pow((1 + r), n) - 1); 

return parseFloat(pmt.toFixed(2)); 

} 

function postpayments(payment) { 
var payments = document.getElementById("outMonthly"); 
payments.innerText = "$" + payment; 
} 

var btn = document.getElementById("btnCalculate"); 
btn.onclick = function() { 
var cost = document.getElementById("inCost").value; 
var downpayment = document.getElementById("inDown").value; 
var interest = document.getElementById("inAPR").value; 
var term = document.getElementById("inPeriod").value; 

var amountBorrowed = cost - downpayment; 

var pmt = calculateMortgage(amountBorrowed, interest, term); 

postpayments(pmt); 
}; 
+0

Обновите светлячок. firefox не отличается от хрома в вычислениях, кроме функций и префиксов поставщика! –

+0

@surajrawat Firefox отличается ... – epascarello

ответ

2

заменить payments.innerText с payments.textContent

+1

Ну, некоторые старые браузеры нуждаются в innerText :) устанавливают оба ... или устанавливают innerHTML – epascarello

+0

@epascarello да прямо на самом деле :) –

1

Если вы хотите работать его во всех браузерах, чистое решение было бы создать TextNode и прикрепить его к виду.

function postpayments(payment) { 
    var payments = document.getElementById("outMonthly"); 
    while (payments.firstChild!==null) 
     element.removeChild(payments.firstChild); // remove all existing content 
    payments.appendChild(document.createTextNode("$" + payment)); 
} 

Проверить это для более подробной информации: https://stackoverflow.com/a/1359834/891092

Смежные вопросы