为什么localStorage不会在Chrome中持久存在?

时间:2012-11-08 16:02:31

标签: javascript google-chrome local-storage

我正在尝试使用以下代码学习如何使用localStorage js对象。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

我知道这并不总是适用于file:///所以我正在使用mongoose来提供它。当我点击“保存”按钮时,Chrome的JavaScript控制台中的结果对我来说是正确的。但是,当我按下刷新时,本地和会话存储都被清除,我希望本地存储值保持不变。这在http://127.0.0.1/http://localhost/上都会发生。

有谁知道为什么会这样?在“设置”,“内容设置”中,我选择了“允许设置本地数据(推荐)”和未选中“阻止第三方Cookie和网站数据”。我在代码中遗漏了什么吗?

(Chrome版本23.0.1271.64 m)

2 个答案:

答案 0 :(得分:12)

确定。谢谢你必须去pimvdb这个,但这是解决方案。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function saveStuff() {
    sessionStorage.setItem('sessionKey', 'sessionValue');
    localStorage.setItem('localKey', 'localValue');
}
localStorage.getItem('localKey');
sessionStorage.getItem('sessionKey');
</script>
</head>
<body>
<button type="button" onclick="saveStuff()">Save</button>
</body>
</html>

摘要似乎是您必须尝试读取密钥才能保留密钥。

结论:WTF。

答案 1 :(得分:8)

<!-- Necro post I know, but maybe it helps someone else -->

我无法弄清楚为什么我在Dev Tools中的localStorage中看不到某些内容,但在键入localStorage时可以在控制台中看到它。好吧,如果您在开放Dev Tools的情况下存储某些内容,则不会看到Application -> Local Storage列出了适合您主机的内容。当我关闭/重新打开Dev Tools时,我可以看到我的数据。

因此,最后,关闭/重新打开Dev Tools。