Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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
Onclick javascript cookie_Javascript - Fatal编程技术网

Onclick javascript cookie

Onclick javascript cookie,javascript,Javascript,我已经创建了一个内容锁(单击链接打开内容),但现在我被困在cookie部分。单击特定链接后,content locker在30天内不得再次出现。我已经创建了onclick cookie,它可以正常工作,但是我似乎无法设置cookie必须保留的天数(无论我如何将其设置为会话cookie),而且我也不知道如何在pageload上读取cookie,以便它不再显示内容锁定器。我根本不是javascript专家,到目前为止我管理的一切都不是谷歌搜索。这是我的密码 myDate = new Date('31

我已经创建了一个内容锁(单击链接打开内容),但现在我被困在cookie部分。单击特定链接后,content locker在30天内不得再次出现。我已经创建了onclick cookie,它可以正常工作,但是我似乎无法设置cookie必须保留的天数(无论我如何将其设置为会话cookie),而且我也不知道如何在pageload上读取cookie,以便它不再显示内容锁定器。我根本不是javascript专家,到目前为止我管理的一切都不是谷歌搜索。这是我的密码

myDate = new Date('31/12/2020 12:00 UTC');
document.cookie = 'clicklink=yes; expires=' + myDate.toString + ';';
onclick=“警报(document.cookie);”>

请按说明提供帮助:

  • 日期构造函数字符串的格式错误
  • Date.toString()无法为expires属性生成正确的格式
  • 你可以阅读更多关于cookies的信息

    要设置cookie,请执行以下操作:

    <button onclick="setCookie('clicklink', 'yes', 30)">Create cookie.</button>
    
    <button onclick="showCookie()">Show cookie.</button>
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
        }
        return "";
    }
    
    要设置cookie,请执行以下操作:

    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
        }
        return "";
    }
    
    要获取cookie,请执行以下操作:

    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
    
    function getCookie(cname) {
        var name = cname + "=";
        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);
            if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
        }
        return "";
    }
    
    HTML

    我想在单击时显示的一些内容
    
    请仔细阅读此文档以了解更多详细信息


    我建议你读一下。它与cookie类似,但更高效、更简单

    可能是Beat me的复制品。如果@davidzar想进一步了解他的解决方案不起作用的原因:1。
    Date
    构造函数字符串的格式错误。2.
    Date.toString()
    没有为
    expires
    属性生成正确的格式。嘿@davidzar,已经两年多了。让我们把这个设定为回答,嗯?
    function checkCookieOnLoad() {
       if(getCookie("clicklink") === "yes") {
          // Show content and hide clicklink
          document.getElementById("content").style.display = "none";
          document.getElementById("clink").style.display = "initial";
       } else {
          // Hide content and show clicklink
          document.getElementById("content").style.display = "initial";
          document.getElementById("clink").style.display = "none";
       }
    }
    
    <div id="content"> Some content that i want to show on click</div>
    <a href="http://www.google.com/" target="_blank" onclick="setCookie('clicklink', 'yes', 30)" id="clink">Visit this to unlock</a>