我正在尝试使用以下代码学习如何使用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)
答案 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。