可以永久更改javascript变量吗?例如,如果我设置变量X并使其等于1,然后单击按钮将该变量更改为2.如何才能使该变量在刷新页面时保持为2?

推荐答案

对于window.localStoragewindow.sessionStorage,这是可能的.不同之处在于,只要浏览器保持打开,sessionStorage就会持续,而localStorage在浏览器重启后仍能存活.持久性适用于entire web site,而不仅仅是其中的一页.

当您需要设置一个应在下一页中反映的变量时,请使用:

var someVarName = "value";
localStorage.setItem("someVarKey", someVarName);

在任何页面中(比如页面加载时),如下所示:

var someVarName = localStorage.getItem("someVarKey");

如果没有存储值或存储的值为.getItem(),则返回null.

注意,only string values可以存储在该存储器中,但这可以通过使用JSON.stringifyJSON.parse来克服.从技术上讲,无论何时你呼叫.setItem(),它都会呼叫.toString()并存储该值.

MDN的DOM存储指南(链接如下)提供了变通方法/多边形填充,如果没有localStorage个,最终会回到cookies之类的东西.

使用现有的或创建自己的迷你库来抽象保存任何数据类型(如对象文字、数组等)的能力并不是一个坏主意.


References:

Html相关问答推荐

CSS复选框并排

有没有可能一个按钮,有焦点,然后再次点击它清除它的焦点,只是使用css?

创建具有圆锥渐变的水平CSS聚光灯

Angular /HTML5不会播放本地文件夹中的音频mpeg

SCSS动画错误:心脏在页面刷新时启动动画,原因是:Checked和:Not(:Checked) Select 器

HX-POST未使用正确的操作(路径)

Tailwind CSS 忽略我的元素的填充

为什么要添加换行符(至少在 Google Chrome 中)

网格布局中的组件

我正在使用 NVDA 并多次读取关闭按钮,但它的读取非常完美

两个span,一个在div居中,好像没有另一个,另一个在右边

使用 R 中的 rvest 包获取搜索结果的第一个链接

获取 div 中每个元素的 href 并使用它

使用 sprite 的问题,字符 sprite 中的额外边距

把标题、段落和图片放在一起

如何使用 html 和 css 为卡片创建此背景框架

在 html 邮箱的左侧和右侧制作多个元素很热门吗?

HTML 标记未在页面上展开

文本输入在 Chrome 中保持水平滚动,带有文本溢出:省略号

尽管设置了 width:100% left:0,但居中对齐的 CSS 动画并不对称