Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Cookies保存/读取不工作_Javascript_Html_Css_Cookies - Fatal编程技术网

Javascript Cookies保存/读取不工作

Javascript Cookies保存/读取不工作,javascript,html,css,cookies,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 n

当用户在我的网站上接受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>

在网上,在皇家银行登记注册时,要求获得许可证
第13/2012号法令。这是纳维甘多人对饼干的看法。
| 
要决定在主体声明中是否显示该div i有此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");
  }
}
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
如您所见,我在c
heckifcookespolicityisaccepted
方法中添加了一个
窗口。alert
,它显示所有相同的警报,并显示相同的文本“el cookie NO es true”,因此它总是读取空值或与“true”值不同的值,因此cookie存储/检索系统不工作

我从这里得到了这个cookie存储/检索系统:

我的代码有什么问题


感谢您的帮助。

您通常无法在通过
文件://
协议访问的文件(即本地文件)中设置cookie。您必须使用本地服务器


另请参见。

您确定是在全局范围内定义函数,而不是在其他函数内定义函数吗?您在console中是否遇到任何错误?是否使用文件:///协议尝试此操作?使用文件:///协议浏览时未设置Cookies,具体取决于浏览器。@Gothdo这些函数存储在一个.js文件中,该文件以这种方式添加到html文件的头中:@reinder我不明白你的意思,我是html css js的新手,刚刚开始。不确定你在说什么如果我尝试chrome控制台中的函数,createCookie(“cookiesPolicyAccepted”,“true”,3)在控制台中写入未定义的内容,而readCookie(“cookiesPolicyAccepted”)在控制台中写入空值。不确定这是否正常