解決在IE8中沒法使用原生JSON的問題

轉自:http://www.iitshare.com/ie8-not-use-native-json.html 

 

原由

       在項目中要將頁面上的js對象傳給後臺,想到能夠用json轉成字符串傳遞。html

1
2
var obj = { "a" :1 "b" :2, "c" :3};
var str = JSON.stringify(obj);

       上述代碼在firefox,chrome中測試都沒問題,但是在ie8下確提示JSON Not Defined,google了一下,天然也有別人遇到同樣的問題,而且給出瞭解決方案,下面就分享一下,同時解釋一下爲何會有這個問題。
chrome

解決

       首先說緣由,微軟文檔的Requirements:Note中已經說的很清楚,翻譯成中文意思大體以下:JSON是包含在JScript 5.8中,而爲了向下兼容ie8只有在文檔模式是」Internet Explorer 8 Standards」的時候才使用JScripte 5.8,其餘時候使用JScripte 5.7特性。所以若是文檔模式沒有聲明爲」Internet Explorer 8 Standards」是找不到JSON對象的。
       那如何聲明」Internet Explorer 8 Standards」呢,根據另外一篇微軟文檔,有兩種方式實現:json

1
2
1. 在文檔頭中添加< meta http-equiv = "X-UA-Compatible" content = "IE=8" >
2. 使用<!DOCTYPE>來聲明文檔

這兩種方式都是告訴ie8瀏覽器以Internet Explorer 8標準模式顯示內容,同時使用ie8的最新特性。瀏覽器

相關文章
相關標籤/搜索