Javascript Cookie显示下一步移动后的警报(第页)

Javascript Cookie显示下一步移动后的警报(第页),javascript,jquery,html,bootstrap-4,Javascript,Jquery,Html,Bootstrap 4,我使用步进器进行注册过程(如:step-1…to,step-3),每个步骤在bootstrap4中都是一个不同的页面 页面加载时,将显示Cookie警报。但关闭后(存储到本地存储器中)或将在10秒后删除。我何时进入下一步(步骤2),Cookie警报将再次显示。实际上,在结束(最后一步)之前,不想再次显示它(如果曾经关闭它) 有没有办法处理这个问题?下面提到了我现在正在使用的代码。请帮忙 $(function () { if (getCookie('BlockPop') == null ||

我使用步进器进行注册过程(如:step-1…to,step-3),每个步骤在bootstrap4中都是一个不同的页面

页面加载时,将显示Cookie警报。但关闭后(存储到本地存储器中)或将在10秒后删除。我何时进入下一步(步骤2),Cookie警报将再次显示。实际上,在结束(最后一步)之前,不想再次显示它(如果曾经关闭它)

有没有办法处理这个问题?下面提到了我现在正在使用的代码。请帮忙

$(function () {
  if (getCookie('BlockPop') == null || (getCookie('BlockPop') != undefined && getCookie('BlockPop').toLowerCase() != 'true')) {
        setCookie('BlockPop', 'true', 30);
        $('.popuphome').slideToggle(1000);
        $('.close').click(function () {
            setCookie('BlockPop', 'true', 30);
            $('.popuphome').slideUp(1000);
        });
        setTimeout(function () {
            $('.popuphome').slideUp(1000);
        }, 30000);
    }
});

function setCookie(ckname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = ckname + "=" + cvalue + "; " + expires;
}
function getCookie(ckname) {
    var name = ckname + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}
$(函数(){
if(getCookie('BlockPop')==null | |(getCookie('BlockPop')!=undefined&&getCookie('BlockPop')。toLowerCase()!='true')){
setCookie('BlockPop','true',30);
$('popuphome')。滑动切换(1000);
$('.close')。单击(函数(){
setCookie('BlockPop','true',30);
$('popuphome').slideUp(1000);
});
setTimeout(函数(){
$('popuphome').slideUp(1000);
}, 30000);
}
});
函数setCookie(ckname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=ckname+“=”+cvalue+”;“+expires;
}
函数getCookie(ckname){
变量名称=ckname+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
首先
!=不幸的是,undefined(未定义)
不是如何检查某些内容是否未定义。所以把这个条件改成

getCookie('BlockPop')的类型!='未定义的' 接下来,完整的if语句实质上是“如果BlockPop cookie为null,或者如果它已定义且具有值
'true'
,则…”

我不确定if语句保护的代码将如何执行

我想如果你把条件改为

if(getCookie('BlockPop')='')
因为现在您正在检查cookie是否为空,然后您将设置它
getCookie
为未定义的cookie返回一个空字符串,因此不需要检查
null
undefined

一旦设置好,您将在30天内不调用代码的其余部分。
setCookie
的时间参数(
exdays
)是cookie过期的天数,因此它将持续10秒以上

如果希望cookie在10秒后过期,请更改
setCookie
中设置过期时间的代码:

d.setTime(d.getTime()+(exdays*1000));
然后调用
setCookie
如下:

setCookie('BlockPop','true',10);

根据您的建议,尝试使用“typeof getCookie('BlockPop')!=”未定义“”和“如果(getCookie('BlockPop')==”),但仍然面临相同的问题,当移动到第二步时,将再次显示cookie警报。如果清除cookie的超时时间为10秒,则会在10秒后清除,因此,如果在10秒后转到下一页,将出现弹出窗口。实际上,“路径”问题最终解决。谢谢你的帮助var domain11=“路径=/”;“”document.cookie=ckname+“=”+cvalue+”;“+expires+”;“+domain11;”@悉达多潘查酷!你应该写下你的答案,以防其他人有类似的问题:D