Javascript Cookie 函数仅适用于索引文件

标签 javascript jquery cookies setcookie

我创建了一个函数来在我的网站中显示 cookie 策略。 cookie 存储在整个网站上并且工作正常,但它的显示/隐藏部分仅在索引文件中有效,而不在所有其他页面中有效,我不明白为什么。

功能如下:

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() {
    var InfoCookieCont = jQuery('#info_cookie');
    var InfoCookieDiv = jQuery(".ok-cookie");
    InfoCookieDiv.click(function() {
     createCookie('infoCookie','true',365)
     InfoCookieCont.removeClass("cookie-visible").addClass("cookie-hidden");
    });

    var InfoCookie = readCookie("infoCookie");
    if (!InfoCookie) {
     InfoCookieCont.removeClass("cookie-hidden").addClass("cookie-visible");
    }
   })();

这会从我的网站安装一个 cookie,直到您单击 .ok-cookie 按钮,#info_cookie 将继续显示在页面顶部,这要归功于.cookie-visible 类。

这在index.php 上运行良好,但在其他页面上则不然。在其他页面中,即使我没有单击上一页中的 ok-cookie 按钮,它也会保留 .cookie-hidden 类。

该函数所在的 .js 文件当然包含在我网站的每个页面中。

直播网站是:www.valeriopierbattista.com

谢谢你的帮助,我快疯了!

最佳答案

您在其他页面上遇到了一些其他 js 错误,这些错误正在终止 js 脚本。

enter image description here

关于Javascript Cookie 函数仅适用于索引文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036166/

相关文章:

jquery - 带引导面板的 masonry 布局

javascript - 与 not() 函数相反

javascript - 仅使用 javascript 不使用 cookie : how? 进行年龄验证

javascript - 在 JavaScript 中保存 cookie 值时如何设置路径?

javascript - 定义两个具有相同参数的变量

javascript - 选项卡内容不变

javascript - Webextension 登录特定页面并一键继续子页面

javascript - 元素的 ng-show 和 ng-hide - 隐藏项目后单击时,再次单击时,它们都会重新出现

javascript - 使用 Jquery 在长时间流程执行之前和之后更改元素的 css

带有代理配置的 angular ng serve 不会从 laravel API 设置 cookie