【问题标题】:Saving locally javascript changes保存本地 javascript 更改
【发布时间】:2013-03-15 10:09:49
【问题描述】:

我试图弄清楚它是否可能以及如何将使用 javascript 对页面所做的更改保存到浏览器。

例如:我有一个隐藏菜单的开关。所以我隐藏我的菜单并离开页面。当我再次访问此页面时,我希望该菜单保持隐藏状态。截至目前,一旦我离开会话或刷新,我使用 Javascript 所做的任何更改都会消失

【问题讨论】:

  • 你应该使用cookies。
  • @DC_:如果服务器不需要访问它并且localStorage 可用,那么localStorage 比cookies 更好:cookie 将在每次请求时发送到服务器,所以当服务器不需要时将内容放入 cookie 中并且不鼓励使用替代方法。
  • 我需要使用 localStorage 来解决这个问题,至少教授想要这样。这是一个 HTML5 课程,但他在课堂上展示的示例并不真正适用于我的网站,我很困惑。我看到的示例只是使用带有键/值对的文本框并保存该信息,因为我的集合有多种样式更改,教授希望保存。

标签: javascript html local-storage web-storage


【解决方案1】:

不像你想的那样,不。没有“记住此页面状态”标志或任何东西。

但是,有一种方法可以存储数据。在现代浏览器上,you can use localStorage 保留用户所做的一些选择或数据。然后当页面加载时,您的 javascript 可以读取该数据,然后配置页面。

例如:

$('#hide-stuff-button').click(function() {
  $('#stuff').hide();
  localStorage.hidden = true;
});

if (localStorage.hidden) {
  $('#stuff').hide();
}

该脚本做了两件事。当你点击一个按钮时它会保存一些偏好,当页面加载时,它会读取保存的状态并对页面做一些事情。

【讨论】:

  • 据我所知,您正在做的是使用 localStorage 作为布尔值来确定工具状态。我认为这对我不起作用,因为我页面上可用的更改有两个以上的状态。 www3.carleton.ca/clubs/sissa/html5/video.html 例如,在侧面菜单中,我有一个更改背景选项,可能有 9 个不同的背景,视频播放器使用随机颜色生成器,因此颜色有无限的选择......但是,您的解决方案适用于宽屏选项,因为它是简单地隐藏和隐藏侧边栏
  • @Batman 这是 jQuery,我为了简洁起见使用了它。这只是一个例子。您可以存储任何类型的数据,然后根据需要将其读回以启动页面。
  • 我没有时间修复它(而且编辑可能太大而无法“保留作者的意图”),但上面的内容相当具有误导性,因为它看起来像是存储在布尔值。 localStorage 仅存储 字符串。因此,虽然上述工作正常,但稍后可能设置localStorage.hidden = false; 的改进将无法按预期工作,因为这确实是localStorage.hidden = "false",这是一个真实值,愚弄if (localStorage.hidden)。建议澄清localStorage的字符串性质。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 1970-01-01
相关资源
最近更新 更多