我正在尝试使用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>
发布于 2010-08-11 14:41:00
它确实支持localStorage
,但您需要处于IE8模式(这在IE7模式下不起作用)。
要检查您是否在IE8模式下工作,请加载开发人员控制台。在顶部,确保选择了IE8模式。标准模式也很好。
您还需要确保使用的是HTML5文档类型。不能将XHTML与HTML5特性一起使用。
<!DOCTYPE html>
使用此doctype应该不会影响您的浏览器支持。
此外,请确保访问window.localStorage
。这不应该是一个问题,但IE已经被认为是托管更奇怪的问题。也许它正在寻找一个局部作用域的localStorage
对象?谁知道呢。
发布于 2010-08-11 21:10:47
音乐怪胎的评论是正确的。因为这个功能需要域,所以我只能通过一个活动的url (至少是localhost)来使用它,而不是从磁盘上以文件的形式打开它。
不需要添加window.localStorage
,因为IE8也只能识别localStorage
。
发布于 2013-09-25 02:01:34
在前面一个好答案的基础上进行扩展:
我也有同样的问题--更糟!甚至IE10也失败了!--我发现解决方案(对我来说)更多地与我的开发环境有关,而不是Internet Explorer。我所做的是创建一个HTML文件,并使用一个很好的文本编辑器对其进行大量编辑。我可以单击并将文件拖到浏览器中,以查看开发页面的进度,然后在更新/编辑文件中的各种内容时,只需刷新浏览器窗口。
事实证明,对于Chrome、Firefox和Opera,window.localStorage是一个有效的对象,但对于Internet Explorer,它是“未定义的”(如调试器中所示)。但是,一旦我启动了一个Web Server程序(用于"localhost"),并使用它将HTML页面提供给浏览器,那么Internet Explorer就为window.localStorage提供了一个有效的对象("DispHTMLStorage")。还要注意的是,在Tools/Options/Advanced for IE中,有一个复选框"enable DOM storage“--默认情况下它看起来是选中的,但总有可能是某些用户手动禁用了它。
https://stackoverflow.com/questions/3452816
复制相似问题