IE8开箱即用支持“localStorage”

我正在尝试使用HTML5functionlocalStorage 。 根据这个博客它可以完成使用IE8,但是当我尝试使用它,我得到一个javascript错误'localStorage is null or not an object'

所以我的问题:IE8可以使用localStorage吗? 这是我的代码:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <title>IE8 - DOM Storage</title> <script type="text/javascript"> function Save() { localStorage.setItem('key','value'); } </script> </head> <body> <button onclick="Save();"> Save </button> </body> </html> 

它确实支持localStorage ,但是你需要处于IE8模式(这在IE7模式下是不行的)。

要检查您是否正在使用IE8模式,请加载开发者控制台。 在顶部,确保select了IE8模式。 标准模式也不错。

有一件事你也想确定的是,你正在使用HTML5文档types。 您应该无法使用HTML5function的XHTML文档。

 <!DOCTYPE html> 

使用这个doctype不应该影响你的浏览器支持。

另外,确保你访问window.localStorage 。 这不应该是一个问题,但IE已经知道主办更多的问题。 也许它正在寻找一个本地范围的localStorage对象? 谁知道。

musicfreak的评论是正确的。 因为这个function需要域名,所以我只能通过一个活的URL(至less是localhost)来使用它,而不是通过从磁盘上打开文件。

不需要添加window.localStorage ,IE8也可以识别localStorage

扩大以前的好答案:

我有同样的问题 – 更糟糕! 即使IE10失败! – 我发现解决scheme(对我来说)更多的是与我的开发环境比Internet Explorer。 我所做的是创build一个HTML文件,并使用一个好的文本编辑器进行大量编辑。 我可以点击拖动文件到浏览器,看看我在开发页面的进度,后来刷新浏览器窗口,当我更新/编辑文件中的各种东西。

事实certificate,对于Chrome,Firefox和Opera,window.localStorage是一个有效的对象,但对于Internet Explorer来说,它是“未定义的”(如在debugging器中所见)。 但是,一旦我启动了一个Web服务器程序(用于“localhost”),并使用它将HTML页面提供给浏览器,则Internet Explorer为window.localStorage提供了一个有效的对象(“DispHTMLStorage”)。 另外请注意,在工具/选项/高级IE浏览器,有一个checkbox“启用DOM存储” – 似乎默认情况下,检查,但总是有可能,一些用户将手动禁用它。

尝试使用“IE =边缘”,而不是“IE = 8”在你的x-ua兼容元标记
来自微软:( 链接 )

使用以下值从Internet Explorer 6到IE11以EdgeHTML模式(Internet Explorer支持的最高标准模式)显示网页。

 <meta http-equiv="x-ua-compatible" content="IE=edge" > 

本地存储的概念应该在IE8 +上工作。

所有你需要做的就是把你的源代码放在服务器上运行。