所以我的页面上有以下一行Javascript:
form.display.value = 'Error';
其中display是我页面上文本类型的输入:
<input type="text" id="calcDisplay" name="display" maxlength="25">
在Chrome中可以正常工作,使输入元素的值为“Error”。但在IE 10和Firefox中,输入的内容如下:
function Error() { [native code]}
有谁可以解释这里发生了什么以及为什么?
更新:这是被调用的实际函数:
function compute(form) {
try {
form.display.value = eval(form.display.value);
} catch(e) {
form.display.value = 'Error';
}
}
以下是视频,所以你们不要以为我疯了:
答案 0 :(得分:2)
当值Error
已经在输入中时,此行:
form.display.value = eval(form.display.value);
...将评估您之前定义的函数Error
。因此,必须在第二次调用compute
函数时进行此操作。
请注意,浏览器与eval
的工作方式不一致,这就是您看到浏览器差异的原因。