我写了一个jQuery插件来强制输入字段中的数值,它在Chrome和Safari中运行良好,但在Firefox中却不行。我在下面发布了一段脚本,在Firefox中,它在第一行失败,错误为ReferenceError: setDefault is not defined
。为什么这条线不适用于Firefox?
isDollar = setDefault(options.isDollar, isDollar);
isReal = setDefault(options.isReal, isReal);
allowDecimal = setDefault(options.allowDecimal, allowDecimal);
allowNegative = setDefault(options.allowNegative, allowNegative);
maxDigits = setDefault(options.maxDigits, maxDigits);
function setDefault(myVar, defaultVal){
if(typeof myVar === "undefined") myVar = defaultVal;
return myVar;
}
答案 0 :(得分:1)
似乎Firefox对ECMA标准有更严格的解释。我从代码片段中遗漏的是整个事情都在if
块内。显然,在这种情况下,在Firefox中执行的JavaScript在声明之前将无法调用setDefault
。有趣的是,这段代码可以在其他浏览器中使用但在Firefox中爆炸。经验教训。