2012-12-28 66 views
1

可能重複:
localStorage object is undefined in IE'寄存' 在IE9未定義

下面的代碼給我SCRIPT5009: 'Storage' is undefined在IE9。它適用於Chrome,Safari,Firefox。

Storage.prototype.setObject = function(key, value) { 
    this.setItem(key, JSON.stringify(value)); 
} 

UDPATE我從Apache服務器服務的頁面,所以下面不適用不從本地文件系統訪問它:

localStorage object is undefined in IE

local storage in IE9 fails when the website is accessed directly from the file system

更新2發現問題,看我的答案。

+0

http://caniuse.com/ –

+5

你在頁面上有DOCTYPE嗎?頁面是否以「兼容模式」運行? –

+0

我沒有指定DOCTYPE。它運行「怪癖」模式 –

回答

0

猜測這裏...

IE 9似乎不支持localStorage的時候在本地文件系統中運行:local storage in IE9 fails when the website is accessed directly from the file system

更多細節可以在這裏找到:http://www.wintellect.com/CS/blogs/jprosise/archive/2011/03/10/using-html5-web-storage-for-interprocess-communication.aspx

所以您可以運行它在外部服務器上 - 或檢查腳本是否支持:

if ("localStorage" in window && window["localStorage"] != null) { 

    // Local storage supported 

} 
+0

我服務於Apache服務器的頁面,而不是從本地文件系統訪問它。另外,我相信IE9支持存儲http://caniuse.com/#feat=namevalue-storage –

+0

是的!但它似乎不在本地文件系統上。這是我的猜測;) – madflow

1

發現此問題。我必須指定DOCTYPE <!DOCTYPE html>即使其他瀏覽器不關心IE。

感謝@火箭Hazmat指出。

沒有DOCTYPE,IE進入怪癖模式。使用DOCTYPE,IE進入標準模式。我的猜測是,爲了訪問HTML5功能,IE需要處於標準模式。