javascript - 用户接受后,我的 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 & Cookies Notice</a> to learn more.
</p>
<div><a href="#" onclick="setCookie()">I ACCEPT</a></div>
</div>
<div class="clear"></div>
</section>
</body>
解决方案
我认为您真正的问题是该indexOf
方法返回的正是 0。因此,您只需将 替换<=
为<
.
推荐阅读
- flutter - 在颤动中使变量整洁
- c# - PRISM:有没有办法让视图知道它是为哪个区域创建的?
- python - 在 for 循环中组织 if 语句以从字符串中提取特定数据
- java - 加密整数数据到数据库
- angular - 即使将 enableGroupEdit 设置为 true,ag-grid 中的分组单元格也不会在编辑单元格时设置新值
- sql-server - 尝试将 CTE 用于 IF
- elasticsearch - 用于预置 Elastic Search 的 AWS Cloud Formation 模板
- python - 如果有超过 2 个字段为空,则跳过该行
- c - 此函数返回一个列表,其中包含列表“A”中“pos_list”中给定位置的值
- javascript - 删除用户的个人资料