我正在尝试使用HTML5功能localStorage
。根据{{3}},它可以使用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>
答案 0 :(得分:56)
它确实支持localStorage
,但您需要处于IE8模式(这在IE7模式下无效)。
要检查您是否在IE8模式下工作,请加载开发人员控制台。在顶部,确保选择了IE8模式。标准模式也不错。
您还需要确定的一件事是您正在使用HTML5文档类型。您不应该使用具有HTML5功能的XHTML doctype。
<!DOCTYPE html>
使用此doctype不应影响您的浏览器支持。
另外,请务必访问window.localStorage
。它应该不是一个问题,但已知IE可以承载更奇怪的问题。也许它正在寻找一个本地范围的localStorage
对象?谁知道呢。
答案 1 :(得分:7)
musicfreak的评论是正确的。 由于此功能需要域,因此我只能通过实时URL(至少是localhost)使用它,而不是将其作为磁盘中的文件打开。
无需添加window.localStorage
,因为IE8也只识别localStorage
。
答案 2 :(得分:4)
扩展前一个好的答案:
我有同样的问题 - 更糟!甚至IE10都失败了! - 我发现解决方案(对我而言)与我的开发环境有关,而不是Internet Explorer。我所做的是创建一个HTML文件,并使用一个好的文本编辑器编辑它。我可以将文件单击并拖动到浏览器中以查看我在开发页面时的进度,然后只需刷新浏览器窗口,当我更新/编辑文件中的各种内容时。
事实证明,对于Chrome和Firefox以及Opera,window.localStorage是一个有效的对象,但对于Internet Explorer来说,它是&#34; undefined&#34; (如调试器中所示)。但是,一旦我启动了一个Web服务器程序(用于&#34; localhost&#34;),并使用它来将HTML页面提供给浏览器,那么Internet Explorer提供了一个有效的对象(&#34; DispHTMLStorage&#34; )用于window.localStorage。另请注意,在IE的工具/选项/高级版中,有一个复选框&#34;启用DOM存储&#34; - 默认情况下似乎已选中,但某些用户可能会手动禁用它。
答案 3 :(得分:1)
尝试在x-ua兼容的元标记中使用“IE = edge”而不是“IE = 8” 来自Microsoft:(link)
使用以下值以EdgeHTML模式显示网页,这是Internet Explorer支持的最高标准模式,从Internet Explorer 6到IE11。
<meta http-equiv="x-ua-compatible" content="IE=edge" >
答案 4 :(得分:-4)
本地存储概念应该适用于IE8 +。
您所要做的就是将源代码放在服务器上并运行它。