全局变量未被赋予外部功能。

时间:2015-03-04 04:24:54

标签: javascript scope

我正在尝试使用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>

2 个答案:

答案 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