我正在尝试使用Javascript设置全局变量。我知道范围是正确的,只要页面没有关闭,值就会保留。即使在刷新时它也应保留其价值。事实并非如此。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
noproductfound=0;
noamount=0;
nodept=0;
function loadpage(){
statusset="";
if(noproductfound==1){
alert('NO PRODUCT FOUND IN DATABASE. ENTER AMOUNT AND DEPARTMENT.');
}
else if(noamount==1){
alert('NO AMOUNT ENTERED. PLEASE ENTER AMOUNT AND DEPARTMENT');
//document.getElementById('current_amount').focus();
}
else if(nodept==1){
alert('NO DEPARTMENT ENTERED. PLEASE ENTER');
}
else if(statusset==1) {
alert('Global statusset is set');
}
else{
alert('NO GLOBALS HAVE BEEN SET');
}
}
function checkthis(){
window.statusset=1;
location.reload();
}
</script>
<title>Testing</title>
</head>
<body onload="loadpage()">
<button onclick="checkthis()" type="submit">Set GLOBAL Status</button>
</body>
</html>
答案 0 :(得分:0)
卸载窗口后,所有JavaScript变量都会丢失,假设您从第1页移到第2页。
在location.reload()发生的情况下也是如此;
MDN Doc说: -
Location.reload()方法从当前URL重新加载资源。 它的可选唯一参数是一个布尔值,当它为真时, 导致页面始终从服务器重新加载。如果是假的 或者未指定,浏览器可以从其缓存重新加载页面。
如果从缓存加载,它将再次加载DOM(丢失窗口)。
PS: - 无论如何DOM都会重新生成。
答案 1 :(得分:0)
Jonathan Lonowski指导我正确使用cookies。我现在一切正常。我也在网上找到了这个资源:http://www.perlscriptsjavascripts.com/js/cookies.html