0

所以我的页面上有以下一行 Javascript:

form.display.value = 'Error';

其中 display 是我页面上文本类型的输入:

<input type="text" id="calcDisplay" name="display" maxlength="25">

在 Chrome 中,这可以很好地将输入元素的值设置为“错误”。但在 IE 10 和 Firefox 中,输入内容如下:

function Error() {    [native code]}

谁能解释这里发生了什么以及为什么?

更新:这是被调用的实际函数:

function compute(form) {
   try {
      form.display.value = eval(form.display.value);
   } catch(e) {
      form.display.value = 'Error';
   } 
}

这是它的视频,所以你们不要认为我疯了:

http://screencast.com/t/sq9xXrnf

4

1 回答 1

2

当值Error已经在输入中时,此行:

form.display.value = eval(form.display.value);

...将评估Error您之前定义的功能。因此,这必须在第二次调用您的compute函数时发生。

请注意,浏览器与eval工作方式不一致,这就是您看到浏览器差异的原因。

于 2013-09-06T21:03:46.240 回答