IE8 开箱即用是否支持“localStorage”

问题描述 投票:0回答:5

我正在尝试使用 HTML5 功能

localStorage
。根据this blog,它可以使用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>
javascript html internet-explorer internet-explorer-8
5个回答
56
投票

它确实支持

localStorage
,尽管您需要处于 IE8 模式(这在 IE7 模式下不起作用)。

要检查您是否在 IE8 模式下工作,请加载开发人员控制台。在顶部,确保选择 IE8 模式。标准模式也不错。

您还想确保的一件事是您正在使用 HTML5 文档类型。您不应该能够使用具有 HTML5 功能的 XHTML 文档类型。

<!DOCTYPE html>

使用此文档类型不应影响您的浏览器支持。

此外,请确保您访问

window.localStorage
。这不应该是一个问题,但众所周知 IE 会出现更奇怪的问题。也许它正在寻找本地范围的
localStorage
对象?谁知道呢。


7
投票

musicfreak的评论是正确的。 因为此功能需要域,所以我只能通过实时 URL(至少是 localhost)来使用它,而不是通过从磁盘将其作为文件打开。

无需添加

window.localStorage
,因为 IE8 也只识别
localStorage


4
投票

扩展之前的好答案:

我也遇到了同样的问题——更糟糕!甚至 IE10 也失败了!--我发现解决方案(对我来说)更多地与我的开发环境有关,而不是 Internet Explorer。我所做的是创建一个 HTML 文件,并使用一个好的文本编辑器对其进行大量编辑。我可以将文件单击并拖动到浏览器中以查看开发页面的进度,然后当我更新/编辑文件中的各种内容时,只需刷新浏览器窗口即可。

事实证明,对于 Chrome、Firefox 和 Opera,window.localStorage 是一个有效的对象,但对于 Internet Explorer,它是“未定义”的(如调试器中所示)。然而,一旦我启动了一个 Web 服务器程序(对于“localhost”),并使用它将 HTML 页面提供给浏览器,Internet Explorer 就会为 window.localStorage 提供一个有效的对象(“DispHTMLStorage”)。另请注意,在 IE 的“工具/选项/高级”中,有一个“启用 DOM 存储”复选框 - 默认情况下似乎已选中该复选框,但某些用户始终可能手动禁用它。


1
投票

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

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

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

-4
投票

本地存储概念应该适用于 IE8+。

您所要做的就是将源代码放在服务器上并运行它。

© www.soinside.com 2019 - 2024. All rights reserved.