如何只允许在首次访问 jQuery 时出现弹出消息
How to only allow a popup message to occur on first visit with jQuery
我正在努力为用户首次访问我们的网站时添加 GDPR 样式/Cookie 通知,但在他们清除缓存之前不会再次访问。我设置了一个通知以在 window 打开时显示,并设置了一个关闭按钮来关闭它。
我已经尝试使用 localStorage 和 sessionStorage jquery,类似于用于帮助其他用户的方法,包括先隐藏弹出窗口然后检查 localStorage 以查看它是否存在:
$(document).ready(function() {
$('#toast').hide();
var element= localStorage.getItem('status');
if (element == null || element == '') {
localStorage.setItem('element', 1);
$('#toast').show();
}});
但是 1) 我不想复制意大利面,因为 2) 它不起作用。
html 弹出窗口:
<div id="toast" class="toast-close fixed-bottom" style="background-color: #DB7232; color: white; opacity: .7; margin: 0 0 2rem 2rem; padding: 1rem; width: 18rem;">
<small>By continuing to browse this site, you're accepting the use of cookies.</small>
<small><button type="button" data-dismiss="toast" class="close" aria-label="Close">×</button></small>
</div>
jquery 在此处关闭弹出窗口:
$(document).on('click', '.toast-close', function() {
$(this).fadeOut(function(){
$(this).remove();
});
});
我预计当用户第一次访问我们的网站时(或自从我们添加此功能后)会出现弹出窗口;一旦他们退出弹出窗口或浏览器,通知将不会再次出现,直到他们的缓存被清除。
你认为你遗漏的部分我不确定。
您的一般代码流程:
1) 检查 cookie/localstorage
2)有条件地渲染弹出窗口
3) 如果用户同意
,则设置cookie/localstorage
我看到您在 cookie 逻辑之前有一个 .hide()。我会将 html 片段保存在其他地方(显示:none?),除非您特别需要它。
看来你知道如何 display/fade 如果你需要它。
您正在阅读 'status',但正在阅读 'element'。这两个名字应该是一样的。
我正在努力为用户首次访问我们的网站时添加 GDPR 样式/Cookie 通知,但在他们清除缓存之前不会再次访问。我设置了一个通知以在 window 打开时显示,并设置了一个关闭按钮来关闭它。
我已经尝试使用 localStorage 和 sessionStorage jquery,类似于用于帮助其他用户的方法,包括先隐藏弹出窗口然后检查 localStorage 以查看它是否存在:
$(document).ready(function() {
$('#toast').hide();
var element= localStorage.getItem('status');
if (element == null || element == '') {
localStorage.setItem('element', 1);
$('#toast').show();
}});
但是 1) 我不想复制意大利面,因为 2) 它不起作用。
html 弹出窗口:
<div id="toast" class="toast-close fixed-bottom" style="background-color: #DB7232; color: white; opacity: .7; margin: 0 0 2rem 2rem; padding: 1rem; width: 18rem;">
<small>By continuing to browse this site, you're accepting the use of cookies.</small>
<small><button type="button" data-dismiss="toast" class="close" aria-label="Close">×</button></small>
</div>
jquery 在此处关闭弹出窗口:
$(document).on('click', '.toast-close', function() {
$(this).fadeOut(function(){
$(this).remove();
});
});
我预计当用户第一次访问我们的网站时(或自从我们添加此功能后)会出现弹出窗口;一旦他们退出弹出窗口或浏览器,通知将不会再次出现,直到他们的缓存被清除。
你认为你遗漏的部分我不确定。
您的一般代码流程: 1) 检查 cookie/localstorage 2)有条件地渲染弹出窗口 3) 如果用户同意
,则设置cookie/localstorage我看到您在 cookie 逻辑之前有一个 .hide()。我会将 html 片段保存在其他地方(显示:none?),除非您特别需要它。
看来你知道如何 display/fade 如果你需要它。
您正在阅读 'status',但正在阅读 'element'。这两个名字应该是一样的。