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

Sam*_*mer 17 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>
Run Code Online (Sandbox Code Playgroud)

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

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

(Chrome版本23.0.1271.64 m)

Sam*_*mer 11

好.谢谢你必须去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>
Run Code Online (Sandbox Code Playgroud)

总结似乎是您必须尝试读取密钥才能保留密钥.

结论:WTF.

  • 这看起来像是 DevTools 中的一个错误。在您实际访问“localStorage”或任何属性之前,“资源”面板中不会显示存储条目。如果您只是在页面加载时执行 `localStorage;`,那么 DevTools 工作正常。 (2认同)

cme*_*eza 9

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

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

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