2015-09-03 133 views
11

我目前正在研究一些JS。除了Microsoft Edge之外,它在每个浏览器中都能正常工作。 这个问题很简单: 在我的剧本之一的开始,我声明一个变量,像这样:localStorage不能在Edge中工作?

var something = localStorage.getItem('something'); 

但无论如何,东西还不存在,但整个想法是,这可以用于在后面的函数中引用。 Firefox,Chrome,Opera和Safari没有问题,但Edge的确如此,所以我的问题是,这是一个快速解决方案吗? 或者我将不得不重写我的整个脚本,因为Edge?

这是边缘抛出的错误。

Unable to get property 'getItem' of undefined or null reference 

谢谢!

+0

试工作。 'localStorage ['something']' –

+0

当我在IE中试用它时,它不会抛出错误。你可以添加更多的代码吗? –

+0

https://msdn.microsoft.com/en-us/library/bg142799%28v=vs.85%29.aspx –

回答

12

本地存储didn't work for local files in IE9,所以我想这仍然是在MS边缘的情况下。

我只是与服务器测试它在边缘上localhost和你的代码行的工作只是罚款:

> var something = localStorage.getItem('something'); 
> undefined 

这是可能的,这是在早期版本的IE浏览器的一个安全问题,只是从不更新随着浏览器的开发。

虽然,似乎localStorage的和sessionStorage的还是不Edge for HTML files accessed using the 'file://' protocol.

+3

谢谢!去爱微软! – Niels

+1

继续讨论这个问题。尽管localStorage正在为我工​​作,同样在本地主机上的IE浏览器中,也适用于单页应用程序。当我尝试设置和访问多个页面上的属性时,它的行为意外;它似乎只更新当前网址(个人页面)。最终我决定在线时只能在IE中测试。 – dading84

3

可否请您尝试

var something = window.localStorage.getItem('something'); 

是否也能检查是否有“启用DOM存储”选择?您可以在下面找到它: Internet选项 - >高级选项卡 - >安全组框

此外,如果您从本地文件系统运行您的页面,localStorage不能在IE上运行,您必须从Web服务器运行它。

Here is a link that provides more information of how to enable it

+0

仍然收到相同的错误。 – Niels

+0

不要一直说同样的话。 – Niels

+0

之前,你有没有将名为'something'的变量设置为本地存储?使用'localStorage.setItem' – Akhil

0

也许DOMStorage被关闭?测试与此:

if (typeof window.Storage === 'undefined') { 
    alert('Storage turned off...'); 
} 
相关问题