这是实现Cookie的正确方法吗?

时间:2019-04-11 09:07:23

标签: javascript jquery css cookies session-cookies

我正在运行以下代码,该代码将加载div并根据cookie隐藏它,但是一旦设置cookie,就不会再次显示它。

我不明白为什么它没有运行。

<!DOCTYPE html>
<html>

<head></head>

    <body>
    <div style="width:250px;height:250px;background-color:#000;" id="PostShare">
    </div>
    </body>

    <script language="javascript" type="text/javascript" async>
    function createPages(name,value,days) {
       var date = new Date();
       date.setTime(date.getTime()+(days*24*60*60*1000));
       var expires = date.toGMTString();
       document.cookie = name+"="+value+"; expires="+expires+"; path=/";
    }

    function readPages(name) {
        var flag = 0;
        var dcmntPages = document.cookie.split(';');
        for(var i=0;i < dcmntPages.length;i++) {
            var ck = dcmntPages[i];
            while (ck.charAt(0)==' ') {
                ck = ck.substring(1,ck.length);
            }
            if(ck) {
                cparts = ck.split('=');
                if (cparts[0] == name) flag=1;
            }              
        }     
        if(flag) { 
            return true; 
        } else {
            return false; 
        }  
    }

    function checkPages(name) {
        if (readPages(name)) {
    document.getElementById('PostShare').style.display = "none";
    document.getElementById('PostShare').style.visibility = "hidden";
        }
        else {
    document.getElementById('PostShare').style.display = "block";
    document.getElementById('PostShare').style.visibility = "visible";
        createPages(name,"cookie 4 the day",1); 
        }
    }

    checkPages("MyPages");
    </script>
    </body>

</html>

我正尝试在隐身模式下使用相同功能,所以它不起作用。请帮助我了解如何使此代码正常工作,或者应该是什么代码,以便在首次加载时为用户隐藏div并在当天的其余加载中显示该div。

谢谢

1 个答案:

答案 0 :(得分:0)

您的实现看起来不错。 如果您在浏览器中通过文件查看页面,则不会设置cookie。您需要将其托管在服务器上。 您可以运行简单的服务器来托管您的html文件:  -python  -apache  -npm