在項目中要將頁面上的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的最新特性。瀏覽器