【问题标题】:Cannot use localStorage无法使用本地存储
【发布时间】:2016-03-02 18:34:27
【问题描述】:

为什么本地存储不起作用?

我最近决定在我正在开发的一个小型网站上尝试使用可切换的主题。我希望主题在会话结束后仍然存在,而且我还没有登录,所以我正在寻找本地存储。

这里的控制台日志确认函数正在运行,但没有为页面创建存储。

var main = function() {
$('#theme1').click (function () {
    localStorage.setItem("theme", "1");
    console.log("click");
});
}
$(document).ready(main);

我也试过localStorage.theme = "1";,但无济于事。

我使用的是最新的 Chrome,但尽管很明显支持 html 5,但我已经在 w3 网站 w3schools.com/html5_webstorage 上进行了检查,并通过他们的“自己尝试”系统运行代码。

【问题讨论】:

  • 嗨。您可以尝试使用jsbin.com 复制该问题吗?
  • localStorage.setItem("theme", "1");仅当单击 id=theme1 的元素时才会调用。
  • 是的,你点击元素#theme1了吗?
  • 您如何确定这不起作用?如果您在页面加载时执行console.log(localStorage.getItem('theme')),您会看到什么?
  • 你没关系,我假设它在它起作用时不起作用。我使用地址栏最左侧的图标显示连接信息以查看 cookie 和本地存储。这会立即使用 w3schools.org 本地存储更新,但不会从我的站点读取本地存储集(为什么?)。我还在开发人员选项卡中检查本地存储,但什么也没看到。这是因为您必须离开本地存储视图并返回查看更改。

标签: javascript jquery html web


【解决方案1】:

请参考图片以检查/验证本地存储是否有效。您还为单击事件编写了代码...单击该事件,然后在控制台中查看。控制台日志中的另一件事

var main = function() {
$('#theme1').click (function () {
    localStorage.setItem("theme", "1");
    console.log(localStorage.getItem('theme'));
});
}
$(document).ready(main);

喜欢就投票吧……

【讨论】:

    【解决方案2】:

    在加载页面时读取本地存储已成功。

    根据 Dan Prince 的评论,我使用开发人员窗口控制台运行 localStorage.theme = "1",但看起来它无法正常工作,原因很简单。您必须离开本地存储视图并返回查看更改,它不会刷新。

    我最初查看本地存储的方式是单击地址栏中地址左侧的图标,该图标显示 cookie、本地存储和连接信息。这确实会立即更新并保留来自 w3schools.org 的本地存储集,但由于某种原因不会从我的页面读取本地存储。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-25
      • 2018-02-25
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多