IE9中未定义“存储”

时间:2012-12-28 20:30:50

标签: javascript html5

  

可能重复:
  localStorage object is undefined in IE

以下代码在IE9中为我提供了SCRIPT5009: 'Storage' is undefined。它适用于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 发现问题,请参阅我的回答。

2 个答案:

答案 0 :(得分:1)

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

感谢@Rocket Hazmat指出它。

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

答案 1 :(得分: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

}