没有在函数外部分配全局变量

Global Variable is not being assigned outside function.

本文关键字:分配 全局变量 外部 函数      更新时间:2023-09-26

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

卸载窗口后,所有JavaScript变量都将丢失,假设您从第1页移动到第2页。

在location.reload()的情况下也是如此;

MDN Doc这样说:-

Location.reload()方法从当前URL重新加载资源。它的可选唯一参数是布尔值,当它为true时,导致页面始终从服务器重新加载。如果它是假的浏览器可以从其高速缓存中重新加载页面。

尽管如此,如果它是从缓存加载的,它将再次加载DOM(窗口丢失)。

PS:在任何情况下DOM都会重新生成。

Jonathan Lonowski指导我正确使用cookie。我现在一切正常。我在网上也找到了这个资源:http://www.perlscriptsjavascripts.com/js/cookies.html