如何在 javascript 中保留变量的值
How to keep a variables's value in javascript
我是一个重定向到自己的页面。(使用第二天和前一天的箭头)在document.ready上,页面显示新的一天。
这些天存储在本地存储中,如下所示:
for(var i = 0;i<status.length;i++)
{
localStorage["Day" + i] = status[i].name;
}
我希望每次显示的默认日期是"Day0",然后当用户单击下一个或前一天时显示前一天。
$(document).ready(function () {
$("#CurrentDay").empty();
$("#CurrentDay").append(GetCurrentDay());
});
function GetCurrentDay() {
localStorage["CurrentDay"] = localStorage["Day0"];
return localStorage["CurrentDay"];
}
我让箭头调用这些函数:
function GoToNextDay() {
if (i != localStorage["SchoolDays"]+1) {
i = i + 1;
localStorage["CurrentDay"] = localStorage["Day" + i];
}
else {
localStorage["CurrentDay"] = localStorage["Day" + 0];
}
}
function GoToPrevDay() {
if (i != 0) {
i = i - 1;
localStorage["CurrentDay"] = localStorage["Day" + i];
}
else {
localStorage["CurrentDay"] = localStorage["Day" + localStorage["SelectedDaysNumber"]];
}
}
我想知道当我在脚本开头用"0"初始化值时,我如何存储值"i"coz,每当调用页面时它都会一直返回到 0,如果我没有值,我怎么知道我从哪里开始?
您可以使用 localStorage 或 globalStorage 来存储数据:
if(typeof localStorage['userName'] === "undefined") {
// defining the localStorage variable
localStorage.setItem('userName', 'taranfx');
}
alert("Your user is: " + localStorage.getItem('userName'));
或者,即使在刷新页面后,您也可以使用 cookie 来存储值:
Cookie 可以通过 JavaScript 创建、读取和删除。它们可以通过属性 document.cookie 访问。虽然你可以把document.cookie当作一个字符串,但它不是真的,你只能访问名称-值对。
如果我想用名称-值对"ppkcookie1=testcookie"设置一个cookie,从我写这句话的那一刻起七天后过期,我会这样做
document.cookie =
'ppkcookie1=testcookie; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/'
- 首先是名称-值对('ppkcookie1=testcookie')
- 然后是一个分号和一个空格
- 然后以正确的格式显示到期日期('expires=星期四, 2001 年 8 月 2 日 20:47:11 UTC')
- 又是一个分号和一个空格
- 然后是路径 (路径=/)
这是一个非常严格的语法,不要更改它!
另外,即使看起来我正在将整个字符串写入字符串 document.cookie,但一旦我再次读出它,我只看到名称-值对:
ppkcookie1=testcookie
http://www.quirksmode.org/js/cookies.html
将其存储在 localStorage 中。首次启动脚本时,请检查是否typeof localStorage['your_var'] == "undefined"
,如果true
将其设置为 0,如果为 false,则使用该值。
您可以在URL中使用哈希(#)来让您的脚本知道您现在在哪一天,或者您可以将该信息保存在cookie中。
请注意,如果您在URL中使用哈希符号,您实际上可以将链接发送给其他人的特定日期,而在cookie中,它是每个"会话"的基础,这意味着只有该用户的浏览器才会记住当前处于活动状态的日期。
所以例如:
www.example.com/#Day0
将是第 0 天的网址
www.example.com/#Day1
将是第 1 天的网址
然后在您的代码中,您需要执行以下操作:
var current_day = window.location.hash;
并使用该变量来初始化数组。
每当有人点击转到另一天时,只需将历史记录推送到该位置,例如
var url = "#" + day_to_display;
if (history.pushState)
history.pushState("", "", url);
else
window.location = url;
- 保留“;这个“;在一个变量中;这个“;使用此变量
- 保留 JQuery Vars 用于另一个函数(全局变量?)
- GAS:在处理程序函数中使用变量时,如何更改全局变量值并保留其更改后的值
- JS坐标->PHP脚本-如何在PHP中保留变量
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- 像cookie这样的全局变量,它在回发后保留值,但应该为不同的实例保存不同的值(选项卡/窗口)
- 如何在 javascript 中保留变量的值
- Javascript 变量函数不保留值
- 文件中.js变量不会保留 AJAX 的值
- 变量和数组将在浏览器内存中保留多长时间
- 更新代码时保留变量
- 为什么 javascript 会保留在外部函数中发生的局部变量重新分配,而不必捕获返回值
- 是否可以在JS中获取保留字(变量,函数,对象名称)的列表
- 如何在 chrome 扩展程序中重新加载浏览器后保留变量的值
- “parent”不应该用作javascript变量名(保留字)
- 如何从控制器保留 html 中的变量
- Javascript继承:父's数组变量保留值
- 可以'不要让一个变量保留它的内容——该死
- nodejs/javascript变量保留其旧值
- 声明一个 JavaScript 变量,它将为 php 变量保留位置