IE9 javascript未定义错误

问题描述:

我试着修复我的应用程序以使用IE9浏览器(使用IE9标准模式)。IE9 javascript未定义错误

但是我得到一些不确定的JavaScript错误..

我有一个js文件下面的一段代码。

1.

if(escape(String.fromCharCode(111)).toLowerCase() != "abc") 

{ 

    //code 

} 

我得到错误 '逃离' 是不确定的。

2. 在一些js文件,我得到的错误“数组未定义”对于这样一段代码

//1 
function abc(){ 

this.abc = new Array(); 

} 


//2 

var cde = new Array 
(

    "aaa","bb","cc", 

    "dd","eee","ff", 

); 

然而,这些错误不会对IE8标准模式等多种模式发生。

请让我知道为什么这些错误即将到来以及如何解决此类错误。

除了使用新的Array(...)的,你能简单地说...

this.abc = [];

和...

变种CDE = [ 'AAA', 'BB', '抄送', 'DD', 'EEE', 'FF'];

...?

+0

Ryan感谢您的回复。 – Girish 2011-04-24 09:04:33

+0

可以在cde中的许多条目(约240)。什么是IE9期待?如何处理未定义的转义 – Girish 2011-04-24 09:06:27

+0

关于escape()问题,我没有遇到任何未定义的错误,试图做你所说明的。也许如果你显示整个代码片段,事情会变得更清晰。 – Ryan 2011-04-24 19:35:03

虽然瑞恩的答案解决了这个问题,但问题在于尾随的逗号;

“DD”, “EEE”, “FF”,

你的ABC功能会将自身到一个数组对象; thiswindow。也许this的上下文已经改变或在某处被误解,并且该代码无意中重新定义window或其属性。这可以解释为什么像Arrayescape这样的全局变量是未定义的。 (不知道为什么它只会影响IE9标准模式,尽管如此。)