一尘不染

页面刷新后如何获取JS变量以保留值?

javascript

是否可以永久更改javascript变量?如图所示,如果我将变量X设置为1,然后将按钮的onClick更改为2。如何在刷新页面时使该变量保持为2?


阅读 783

收藏
2020-04-25

共1个答案

一尘不染

window.localStorage或可以做到这一点window.sessionStorage。不同之处在于sessionStorage,只要浏览器保持打开状态,localStorage它就可以持续使用,直到浏览器重新启动后,它才能幸免。持久性不仅适用于
整个网站, 还适用于 整个网站

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

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

在任何页面(例如页面加载时)中,都可以像这样获得它:

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

.getItem()``null如果未存储任何值或存储的值将返回。

请注意, 只能将字符串值
存储在此存储中,但是可以使用JSON.stringify和来克服JSON.parse。从技术上讲,每当您调用时.setItem(),它将调用.toString()该值并将其存储。

MDN的DOM存储指南(在下面链接)具有变通方法/填充,如果localStorage没有的话,最终会归结为cookie之类的东西。

使用现有的或创建自己的迷你库的抽象方法可以保存任何数据类型(例如对象文字,数组等),这不是一个坏主意。


2020-04-25