javascript - 如何设置基本的普通 JavaScript if 语句来设置 cookie

标签 javascript

需要设置 cookie,以便年龄限制仅在网站上显示一次。

我试图使用 CMS 中的插件,但对于当前站点来说它的版本太新了。所以我现在很迷茫,甚至不知道从哪里开始。

<script type="text/javascript">
        var age__gate = document.querySelector(".age__content");
        var age__gate__no = document.querySelector(".age__no");
        var age__check = document.querySelector(".age__check");

        var age__button__no = document.getElementById("age__No");
        var age__button__yes = document.getElementById("age__Yes");


        age__button__no.addEventListener("click", function() {
            age__gate.classList.add("is-active");
            age__gate__no.classList.add("is-active");
        });

        age__button__yes.addEventListener("click", function() {
            age__check.classList.add("is-active");

            document.cookie = 'age_confirmed=checked';
        });
 </script>

这就是我到目前为止的脚本。我只需要一种方法将age_confirmed=checked 附加到弹出窗口本身,这样它就不会显示。 cookie 在后端存储得很好,但现在 CMS 代码不起作用,我不知所措。任何帮助让这个工作都很棒:)

编辑

整个 CMS 没有损坏,只是存储 cookie 的插件损坏了。

我觉得类似的东西应该有效;

<script type="text/javascript">
        var age__gate = document.querySelector(".age__content");
        var age__gate__no = document.querySelector(".age__no");
        var age__check = document.querySelector(".age__check");

        var age__button__no = document.getElementById("age__No");
        var age__button__yes = document.getElementById("age__Yes");


        age__button__no.addEventListener("click", function() {
            age__gate.classList.add("is-active");
            age__gate__no.classList.add("is-active");
        });

        age__button__yes.addEventListener("click", function() {
            age__check.classList.add("is-active");

            document.cookie = 'age_confirmed=checked';

           if (age_confirmed == checked) {

            age__check.classList.remove("is-active");

           }
        });
 </script>

最佳答案

在修复您的 CMS/后端/任何您可以使用的内容之前 window.localStorage -(至少在欧洲)符合与存储 Cookie 相同的规定

有这个 HTML:

<label><input type="checkbox" id="age">Let me in, I am 18+</label>

这是 JavaScript

// Put this chunk on every page (Fails if unset or if value is "minor")

if (localStorage.age !== 'adult') alert("You're not of legal age to see this content");



// Put this chunk where needed

const EL_age = document.querySelector("#age");
EL_age.addEventListener('change', () =>  localStorage.age = EL_age.checked ? 'adult' : 'minor');
EL_age.checked = localStorage.getItem('age') === 'adult'; // If found - update checkbox state

关于javascript - 如何设置基本的普通 JavaScript if 语句来设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58053456/

相关文章:

javascript - 如何阻止模态直到 api 请求得到解决

javascript - 如何检测服务器是否关闭?

javascript - 我必须在 Node.js 中使用 Babel 吗?

javascript - 循环遍历 JSON 对象

javascript - 具有可点击的不规则形状的网格

javascript - xmlhttpresponse 错误

javascript - 减少按钮 HTML/CSS 中的文本

javascript - 一次搜索并显示多个单词。在 PHP 中

javascript - 滑动切换 2 个相邻的 div

javascript - $(element).width() 与其实际像素宽度之间的奇怪差异