1

可能重复:
在 IE 中未定义 localStorage 对象

下面的代码SCRIPT5009: 'Storage' is undefined在 IE9 中给了我。它适用于 Chrome、Safari、Firefox。

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

udpate我正在从 Apache 服务器提供页面,而不是从本地文件系统访问它,因此以下内容不适用:

localStorage 对象在 IE 中未定义

直接从文件系统访问网站时,IE9 中的本地存储失败

更新 2发现问题,请参阅我的回答。

4

2 回答 2

1

发现了问题。我必须指定 DOCTYPE<!DOCTYPE html>即使其他浏览器不关心 IE。

感谢@Rocket Hazmat 指出这一点。

如果没有 DOCTYPE,IE 将进入 Quirks 模式。使用 DOCTYPE,IE 进入标准模式。我的猜测是 IE 需要处于标准模式才能访问 HTML5 功能。

于 2012-12-28T21:00:44.313 回答
0

在这里猜...

IE 9 在本地文件系统上运行时似乎不支持 localStorage:直接从文件系统访问网站时,IE9 中的本地存储失败

更多细节可以在这里找到: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

}
于 2012-12-28T20:38:11.040 回答