1

我正在开发 ExtJS 应用程序,但 Internet Explorer 存在兼容性问题。该应用程序中断并引发与此代码行相对应的错误:

execScript(code);

使用 IE Developer Tools,我发现代码变量包含自定义组件的类声明。我不知道是什么导致了这个错误。我已经检查了这个文件 3 次(1400 行代码)。作为记录,这在 Firefox 和 Chrome 上完美运行......

所以,我想知道是否有一种方法可以更多地了解出了什么问题,并得到一个行号或堆栈跟踪,所以我可以纠正这个问题。

任何帮助表示赞赏。谢谢 !

4

1 回答 1

0

有完全相同的问题。

花了很长时间才弄清楚问题出在哪里,但在我们的例子中,我们从两个单独的对象文字(Status 和 StatusElements)创建了一个双精度数组。见下文。

Status = {
    'new': 10,
    'automatic': 15}

StatusElements = {
    10: { name: 'new', color: 'black', bgcolor: '#ffd3cf'},
    15: { name: 'automatic', color: 'black', bgcolor: '#'}}

var y =  [
    [Status.new, StatusElements[Status.new].name],
    [Status.automatic, StatusElements[Status.automatic].name]
    ]

由于某种原因,Internet Explorer 在尝试评估上述 y 时会崩溃。

老实说,我不知道为什么 execScript(code); 在 Internet Explorer 中出现上述代码失败。也许这是评估的顺序。也许它会在评估 Status 和 StatusElements 之前尝试评估 y。无论如何,我们通过降低复杂性并让 y 等于一些原始值来修复它。

于 2014-08-04T09:50:39.427 回答