2011-11-30 189 views
34

只有在兼容模式下,IE 9 SCRIPT5009: 'JSON' is undefined中出現以下錯誤。導致此錯誤的行是SCRIPT5009:'JSON'未定義

JSON.stringify(togObj.Answers) 

中不會發生,即(非兼容模式)錯誤,Chrome或Firefox。 任何想法這裏發生了什麼?

+3

看來'JSON'對象沒有被定義。查看用於添加JSON支持的http://json.org/js.html。 –

+0

謝謝你,這很容易! –

回答

23

JSON是not available in compatibility mode IE:怪癖,因特網瀏覽器6級的標準,Internet Explorer 7的標準:

在以下文檔模式不支持。

由於您不應該使用(或更糟的是,上reyling)首先兼容模式,則應該通過添加有效的文檔類型切換IE到標準模式。

+1

我不小心打開了兼容模式並出現錯誤。 +1指導我。 – vbocan

+0

請注意,IE內聯框架「繼承」父框架的文檔模式。因此,如果您可能會嵌入到您無法控制的網頁中,那麼如果可能需要JSON庫遠遠超出IE7。 – cmc

-1

如果您在頁面上使用jQuery庫,則可以使用$.parseJSON

+0

不起作用,因爲jQuery使用JSON。解析 –

+0

@FilipCornelissen:http://api.jquery.com/jQuery.parseJSON/它需要1.4.1的jQuery版本。另外,驗證你的json是否正確。嘗試將一個演示json字符串傳遞給此函數並進行驗證。來自同一頁面的 – iMatoria

+0

:「在瀏覽器提供JSON.parse的本地實現的地方,jQuery使用它來解析字符串。」和(簡化)來自http://code.jquery.com/jquery-latest.js:'parseJSON:function(data){return window.JSON.parse(data); }」。 結論,在IE8或更低版本中不起作用。 –

0

你需要包括json2.js

看到json2 inclusion

瞭解更多詳情。有些情況下我們必須處理客戶使用IE7標準的情況。所以我們的代碼也不得不迎合這種情況。我們的零售網站被數百個使用IE7標準的客戶訪問。包括json2解決了這個問題

2

我已經完成LOCAL Jquery添加.NEt 2.0代碼測試,它工作正常沒有任何問題。 但是,將代碼遷移到IIS v6服務器後,從相同的IE瀏覽器訪問,然後問題出現「JSON」未定義。 閱讀完此建議後,將文件json2.js下載並添加到源代碼中。

<script type="text/javascript" src="json2.js"></script> 

所有工作都很好。

好謝謝。