2011-04-24 121 views
3

我試着修復我的應用程序以使用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標準模式等多種模式發生。

請讓我知道爲什麼這些錯誤即將到來以及如何解決此類錯誤。

回答

0

除了使用新的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

2

雖然瑞恩的答案解決了這個問題,但問題在於尾隨的逗號;

「DD」, 「EEE」, 「FF」,

0

你的ABC功能會將自身到一個數組對象; thiswindow。也許this的上下文已經改變或在某處被誤解,並且該代碼無意中重新定義window或其屬性。這可以解釋爲什麼像Arrayescape這樣的全局變量是未定義的。 (不知道爲什麼它只會影響IE9標準模式,儘管如此。)