1. 程式人生 > >解決在IE8中無法使用原生JSON的問題

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

起因

       在專案中要將頁面上的js物件傳給後臺,想到可以用json轉成字串傳遞。

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

       上述程式碼在firefox,chrome中測試都沒問題,可是在ie8下確提示JSON Not Defined,google了一下,自然也有別人遇到一樣的問題,並且給出瞭解決方案,下面就分享一下,同時解釋一下為什麼會有這個問題。

解決

       首先說原因,微軟文件的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”呢,根據另一篇

微軟文件,有兩種方式實現:

1 2 1. 在文件頭中新增<meta http-equiv="X-UA-Compatible" content="IE=8" > 2. 使用<!DOCTYPE>來宣告文件

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

相關推薦

解決IE8無法使用原生JSON的問題

起因        在專案中要將頁面上的js物件傳給後臺,想到可以用json轉成字串傳遞。 1 2 var obj = {"a":1 "b":2, "c":3}; var str = JSON.stringify(obj);     

解決Exchange2010無法顯示客戶端訪問服務器ClientAccessArray成員的問題

查看 加域 ext 單擊 decimal pcc color ads ems 最近在搭建Exchange2010的過程中,在部署了兩臺客戶端訪問服務器角色後,添加了客戶端訪問服務器陣列後發現少了一個CAS 成員,如下圖所示:我的環境可是有兩臺CAS服務器角色的,如下圖:於是

解決 wampserver 無法啟動mysql資料庫的問題

問題描述: 啟動wampserver後,軟體的圖示用紅色變為橙色之後,就一直保持原樣了。只有當圖示變成綠色的時候才能正常使用的。 圖示中顯示 local server -1 of 2 services running 。表示2個服務中只有一個服務啟動。 我們進去mysql裡面看一

解決IIS無法執行aspx檔案,提示:伺服器應用程式不可用

引起這個的原因大概是現安裝了.Net Framework後裝的IIS導致.Net沒有在IIS裡註冊。 從.net命令列工具裡執行 aspnet_regIIS /i 就可以了(或者在類似下面的目錄:C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/asp

inotify+rsync實現實時同步(附解決crontab無法執行python指令碼的問題)

1.準備環境 # 系統支援的話,下面的目錄就會存在 ls /proc/sys/fs/inotify/ rpm -qa inotify-tools yum -y install inotify-tools 2.inotifywait監控目錄狀態變化 /usr/bin/inotif

解決Maven下無法下載json包到本地

  今天開發專案的時候發現net.sf.json-lib 的jar包無法下載到本地.  一開始以為是網路不好,可是試了好幾次之後發現還是一樣的.  原來maven倉庫給的下載jar包的dependency有問題.  需要新增 classifier

解決VS2013無法開啟檔案“kernel32.lib”,無法執行“rc.exe”問題

一、解決無法開啟檔案“kernel32.lib” 原因在於沒有配置好“庫目錄”路徑。 解決步驟: 1.1 找到“kernel32.lib”的路徑,一般在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib中。

夜光:解決eclipse無法建立web工程的問題

夜光序言: 你問我在不在意?我放在心尖上的人,我想守護的人,我絕不允許別人傷害到她,更不允許自己傷害她~ 正文: 你要知道idea很吃記憶體的,便於書寫,我們開發人員會使用eclipse,但是有的時候需要安裝外掛,這就是為什麼軟體體積小也有不利的地方~~ 詳細邏輯:

解決ie8 focus函式不好使問題

在做專案時遇到了這麼一個問題,彈出層時,自動讓文字框獲得焦點,就是$('id').focus(); 可問題是次函式在ie9上好使,在ie8上不好使。後來改為js形式document.getELementById('id').focus()也不好使。 後來看到論壇討論可以通過

如何解決IE8eWebEditor編輯器按鈕不能正常使用

由於IE升級,造成網站後臺編輯器(eWebEditor)的按鈕不能使用,如:插入圖片等功能。有些第三方瀏覽器也不行,因為它們使用了IE核心,如遨遊。那麼如何解決呢,搜尋了網上資料,想必肯定不可能只有我一個人這麼倒黴吧。果然,很多朋友都碰到,解決方法也很多,大都差不多。自己結合自己的解決過程,說明下,一步到位

解決eclipse無法直接使用Base64Encoder的問題

今天要使用Base64Encoder,卻發現在Eclipse中無法找到該類,google了哈,原來Base64Encoder並不屬於JDK標準庫範疇,但是又包含在了JDK中,如http://moses3017.iteye.com/blog/968854所言。 解決方法:按照

關於jquery1.3.1,IE7,IE8無法使用ajax的討論?

大家好,最近使用jquery的ajax功能,但是發現$.ajax()方法不能提交到後臺,我是用的是IE7,其他方法如get和post沒有試過,但由api所知底層都是用ajax方法來實現的。 通過檢視原始碼發現 // Create the request object; Mic

如何解決Chrome無法使用印象筆記的情況

經常看到一些優秀的部落格,然後就只能新增到瀏覽器的資料夾中,久而久之越來越多,很是頭疼。看到印象筆記後,發現其可以裁剪網頁內容的功能很是吸引人,於是便下載了一個安裝。由於瀏覽器使用的Chrome,無法

IE8訪問FTP無法直接顯示資料夾檢視解決辦法

 雖然微軟的IE瀏覽器8.0版本在安全方面進行了增強,但是在訪問FTP的功能和方便性上被大幅度的減弱,微軟在IE7中已經取消了以前版本對 FTP訪問的許多功能。這導致以前使用瀏覽器訪問FTP的使用者在使用IE7訪問FTP時常遇到一些問題,因此下面提供了三個解決辦法:   1、替代方法   第一步:啟動 Int

ssh關於含有外鍵的傳值無法識別正確的action的原因和解決辦法

ces pub ets err ntc 執行函數 success 引入 dst 在含有外鍵的表中,要保存一個值到這個外鍵時:邏輯思路:需要先將jsp頁面的值傳到相應的action中,在這個action中需要引入這個外鍵的實體層和DAO層(DAO層只需set方法),在執行函數

解決fasterxmlstring字符串轉對象json格式錯誤問題

onf nbsp 格式 json字符串 star name 聯系 並不是 div   springboot中jackson使用的包是fasterxml的。可以通過如下代碼,將一個形如json格式string轉為一個java對象: com.fasterxml.jackso

解決VS2013調試ASP.NET無法調試的問題:當前不會命中斷點。在 XXXX.dll 找到了 XXX.cs 的副本,但是當前源代碼與 XXXX.dll 內置的版本不同。

strong 當前不會命中斷點 導致 隨機 當前日期 目錄 一次 但是 解決 解決思路: 一定是在某個文件夾存在了副本,結果果然不出所料。 當前日期是2016年3月10日,But C:\Windows\Microsoft.NET\Framework\v4.0.3

MySQL安裝無法通過命令刪除原有權限的解決辦法

host 刪除權限 服務 art 數據 手動 啟動 lec l數據庫 在MySQL的安裝中,出現了原有權限無法刪除的情況。經過研究,需要按照以下步驟手動刪除權限。 1.啟動MySQL服務,service mysqld start 2.進入mysql數據庫,use mysql

在window 10系統無法創建.gitignore文件的解決方案

名稱 post window 10 創建 git div 文件 shift 如何 1.在本地倉庫目錄下創建文本文件,文件名稱隨意 2.打開powershell命令窗口,輸入以下命令    ren 創建的文本文件全稱 .gitignore 3.如何打開powershell窗口

vue-cli 構建項目在IE無法運行解決方式(build之後可運行)

會有 支持 run nbsp happy 是我 word htm 項目 IE瀏覽器(只考慮IE11,更低版本我沒考慮)運行時報 Promise未定義的錯誤 解決辦法: 1. 安裝babel-polyfill   (1.)  npm install babel-poly