javascript - 如何在用户单击链接后停止弹出窗口?

标签 javascript

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

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

1) 有没有更好的方法来做到这一点,比如将数据保存到数据库?

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

这是设置 cookie 的代码。如果 cookie 未设置为“已访问”,它会调用另一个函数 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过期的日期。

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";
}

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

关于javascript - 如何在用户单击链接后停止弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561236/

相关文章:

javascript - Node.js 服务器的 Angularjs html5Mode(true) 页面重新加载错误

javascript - 如何编写在计时器上运行的后端服务?

Firefox 中的 JavaScript 弹出窗口

javascript - 相对于另一个元素定位一个元素

仅订阅和触发自定义事件的 JavaScript 框架?

javascript - 如何防止点击 '#' 链接跳转到页面顶部?

javascript - 我是否需要为每个用户创建 client_id 和 client_secret 以实现 oauth?

javascript - JavaScript 是否有类似 CDI 的机制

php - 在同一页面将javascript变量传输到php而不提交

javascript - 多状态按钮,如 angularJS 中的切换