gpt4 book ai didi

Javascript 全局变量没有更新

转载 作者:行者123 更新时间:2023-11-30 18:16:59 25 4
gpt4 key购买 nike

我正在制作这个网站。我想从另一个函数更新全局变量。全局变量 i 初始化为 0。我创建了 2 个函数,第一个用于更新全局变量并通过警报显示新值,第二个函数只提醒更新后的全局变量的新值多变的。现在的问题是,当我调用第一个函数时,它会提示新的更新值,但是当我调用第二个函数时,它会提示原始值为零。

这是我的代码:-

 var i=0; var users=new Array(); 
var password=new Array();
users[0]="clydewinux";
password[0]="moonfang";
users[1]="freddipasquale";
password[1]="evastar182";

function verifyInput() { //function one
var u = login.username.value;
var p = login.password.value;
for (var c = 0; c <= 1; c++) {
if (u === users[c] && p === password[c]) {
i++;
alert(i);
window.location.replace("login.htm");
break;
} else {
document.getElementById("username").value = "Invalid username...";
window.location.href("home.htm");
break;
}
}
}

function logout() { //function two
alert(i);
window.location.replace("home.htm");
}

*注; function verifyInput() 是第一个函数,function logout 是第二个。

最佳答案

当您调用第一个函数时,您通过加载新页面来更改页面内容。

Javascript 变量不会从一个页面保存到另一个页面。

因此 i 是调用 window.location.replacewindow.location.href= 后的新值。

如果你想将一些值从一个页面保存到另一个页面,你可以使用 localStorage :

var i = parseInt(localStorage['i'] || '0', 10); // loads the old saved value of i
function verifyInput() {
var u = login.username.value;
var p = login.password.value;
for (var c = 0; c <= 1; c++) {
if (u === users[c] && p === password[c]) {
i++;
localStorage['i'] = i; // stores the incremented i
alert(i);
window.location.replace("login.htm"); // this ends the script and reload the page
break; // this is useless : the script has ended
} else {
document.getElementById("username").value = "Invalid username...";
window.location.href("home.htm"); // this is buggy
break;
}
}
}

function logout() {
alert(i);
window.location.replace("home.htm");
}

旁注:window.location.href("home.htm"); 不起作用:使用 window.location.href = "home.htm";

关于Javascript 全局变量没有更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13016498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com