仅限IE8中的Javascript“未定义”错误

时间:2012-07-24 16:17:22

标签: javascript internet-explorer

我在http://www.mincovlaw.com/interest/calculate的脚本在FF,Chrome,Safari和IE9中运行良好。

我刚刚意识到它在IE8中引发'newamount' is undefined错误。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

首先,您有一个应该修复的脚本错误。

window.onload=changeaboutfirm(1);

onload事件应该直接绑定到函数的引用,而不是changeaboutfirm()返回的任何内容。你可能想要这样的东西:

window.onload = function () { changeaboutfirm(1); }

在IE中,这会引发“未实现”的异常,这很可能会阻止其他脚本运行。

第二次newamount未在任何地方定义。它提到的唯一地方是editamount函数:

function editamount() {
    changedamount=getAmount();
    var name=prompt("New Amount (Numbers ONLY):",changedamount);
    if (name != '' && name != null) {
        isNaN(newamount) ? changedamount : parseFloat(newamount);
        y.innerHTML="$"+nicenumber(newamount);
    }
    if (newamount != changedamount) { hideCalculated(); }
}

您需要添加:

var newamount = ???;

答案 1 :(得分:0)

尝试替换

newamount=parseFloat(name);
if (isNaN(newamount)) {
    newamount=changedamount;
}

isNaN(newamount) ? changedamount : parseFloat(newamount);

这样可以在NaN之前检查parseFloat IE可能存在问题。