首页 > 解决方案 > 用户接受后,我的 Div 不断弹出

问题描述

我创建了一个通知,应该会弹出并询问用户是否同意隐私条款。如果是这样,则应将 cookie 设置在一段时间内不会再次弹出的位置。问题是某些用户在单击“确定/接受”后会继续弹出。如果用户或我自己进行“硬刷新”(清除现金),则该功能似乎有效。

这是javascript

function checkCookie() {
  
  if (document.cookie.indexOf("accpttrms") <= 0) {
      document.getElementById("disclaimer").style.display = "block";      
      } else {
      document.getElementById("disclaimer").style.display = "none";
    }  
}

function setCookie() {
  
  if (document.cookie.indexOf("accpttrms") <= 0) {    
      document.cookie = "accpttrms=yes";      
      var x = document.getElementById("disclaimer");
      x.style.display = "none";
    }   
}

这是HTML

<body onload="checkCookie()">

  <section id="disclaimer" style="display:none;">
    <div class="disholder">
    
      <h4>PLEASE REVIEW OUR UPDATED PRIVACY & COOKIES NOTICE</h4>
      <p>This site uses cookies and similar technologies...
        <a href="/privacy-policy/">Read our updated Privacy &amp; Cookies Notice</a> to learn more.
      </p>  
      <div><a href="#" onclick="setCookie()">I ACCEPT</a></div>
    </div>
    <div class="clear"></div>
  </section>
</body>

标签: javascriptcookies

解决方案


我认为您真正的问题是该indexOf方法返回的正是 0。因此,您只需将 替换<=<.


推荐阅读