繁体   English   中英

如何在用户点击链接后显示弹出窗口?

[英]How can I make a pop up stop appearing after a user clicks the link?

当用户点击弹出通知时我使用JavaScript设置cookie,但在完全关闭浏览器后,cookie过期并在导航到页面时再次显示通知。

我希望用户可以选择基本上说“不再显示”

1)有没有更好的方法来保存数据到数据库?

2)我可以设置cookie,以便在窗口关闭时它不会过期吗?

以下是设置cookie的代码。 如果cookie未设置为“visited”,则调用另一个函数showLightBox()

$j(document).ready(function() { 

        $j(function() {
                    checkCookie();

                });

        function checkCookie() {
                var hasVisit = getCookie("hasVisited");

                if(hasVisit != "visited") {
                    showLightBox(); 
                }
        }

        function getCookie(c_name) {
            var c_value = document.cookie;
            var c_start = c_value.indexOf(" " + c_name + "=");

                   if (c_start == -1)
                   c_start = c_value.indexOf(c_name + "=");

           if (c_start == -1)
           c_value = null;          
           else
          {
              c_start = c_value.indexOf("=", c_start) + 1;
              var c_end = c_value.indexOf(";", c_start);
              if (c_end == -1)
              c_end = c_value.length;

                   c_value = unescape(c_value.substring(c_start,c_end));
          }
            return c_value;
        }

        function setCookie(cookieName, value) {

            document.cookie = cookieName + "=" + value;  
        }

你有没有机会使用会话cookie? 它们会在您关闭浏览器时过期。

你可以继续在这里阅读:

关闭浏览器后为什么cookie不会过期?

您可以像这样设置cookie过期的日期。

document.cookie="username=suman; expires=Thu, 18 Dec 2020 11:00:00 GMT";

现在这个cookie将在2020年12月18日被删除。默认情况下,当您的浏览器关闭时,cookie将被删除。

更新: -在您的情况下,cookie将设置它将过期的日期。

function setCookie(cookieName,value){
    document.cookie = cookieName+"="+value+"; expires=Thu, 18 Dec 2020 11:00:00 GMT";
}

您可以在日期字段中输入您想要的任何日期。

您可能没有为cookie设置过期,因此它默认为在浏览器关闭时到期的会话cookie。

如果您已经在使用jQuery,我建议使用精彩的jQuery Cookie插件 ,这使得设置和检索cookie成为一块蛋糕。 有关详细信息,请参阅自述文件/文档,只需编写几行代码而不是50行代码。

为什么不在html5中使用localStorage来实现这一点,因为它是持久的,就像用户第一次点击链接时设置标志

localStorage.setItem('clicked', "yes");

然后再次检查是否设置了此值,

   if(localStorage.getItem('clicked')!=null){
     //clicked
   }
   else
   {
    //not clicked
   }

如果设置了此值,则显示“不要再显示”,否则不要......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM