Cookie保存/阅读无效

时间:2016-02-20 11:22:36

标签: javascript html css cookies

我正在尝试在用户在我的网站上接受Cookie政策时存储Cookie,因此当它被接受时,必须在用户下次打开网站或用户按下时隐藏专门用于接受该策略的div F5,问题是出现了错误,因为div没有被隐藏。

这是div代码:

<div id="cookiesBar">
        <div class="inner">
            Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real 
            Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.
            <a href="javascript:void(0);" class="ok" onclick="acceptCookiesPolicy();"><b>OK</b></a> | 
            <a href="http://politicadecookies.com" target="_blank" class="info">Más información</a>
        </div>
    </div>

决定是否显示div在身体声明中有这个onload事件:

<body onload="checkIfCookiesPolicyIsAccepted();">

这是我的javascript文件:

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(";");
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==" ") c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function eraseCookie(name) {
  createCookie(name,"",-1);
}

function acceptCookiesPolicy(){
  createCookie("cookiesPolicyAccepted", "true", 365);
  document.getElementById("cookiesBar").style.display="none";
}

function checkIfCookiesPolicyIsAccepted(){
  if(readCookie("cookiesPolicyAccepted")!="true"){
    document.getElementById("cookiesBar").style.display="block";
    window.alert("el cookie NO es true");
  }else{
    document.getElementById("cookiesBar").style.display="none";
    window.alert("el cookie es true");
  }
}

正如您所看到的,我在c window.alert方法中添加了heckIfCookiesPolictyIsAccepted,它始终显示相同的警告,并使用相同的文字“el cookie NO es true”,因此它总是在阅读null或与“true”值不同,因此它不能用于cookie存储/检索系统。

我从这里获得了这个cookie存储/检索系统:http://www.quirksmode.org/js/cookies.html

我的代码有什么问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您通常无法在通过.alert .glyphicon{ float:left; margin-right:9px; } .alert div{ overflow:hidden; } 协议(即本地文件)访问的文件中设置设置Cookie。您必须使用本地服务器。

另见Setting Cookies using JavaScript in a local html file