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 +上工作。
所有你需要做的就是把你的源代码放在服务器上运行。