Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果存在另一个cookie,则删除cookie_Javascript_Jquery_Html_Cookies - Fatal编程技术网

Javascript 如果存在另一个cookie,则删除cookie

Javascript 如果存在另一个cookie,则删除cookie,javascript,jquery,html,cookies,Javascript,Jquery,Html,Cookies,我有一个要求,如果客户通过广告进入我们的网站,我需要根据他们上次点击的广告显示不同的内容。。如果他们点击广告A,我们希望显示横幅A,并设置一个cookie,以便该横幅在他们点击后显示24小时。但是,如果他们在24小时内点击广告B,我们希望他们在24小时内显示广告B,而不是广告A。如果他们再次点击广告A,则显示广告A。如果他们没有点击任何广告,我们希望向他们显示广告C 我实现这一点的方法是根据他们点击的广告设置cookie,如果他们在该cookie存在时点击了另一个广告,则删除第一个cookie并

我有一个要求,如果客户通过广告进入我们的网站,我需要根据他们上次点击的广告显示不同的内容。。如果他们点击广告A,我们希望显示横幅A,并设置一个cookie,以便该横幅在他们点击后显示24小时。但是,如果他们在24小时内点击广告B,我们希望他们在24小时内显示广告B,而不是广告A。如果他们再次点击广告A,则显示广告A。如果他们没有点击任何广告,我们希望向他们显示广告C

我实现这一点的方法是根据他们点击的广告设置cookie,如果他们在该cookie存在时点击了另一个广告,则删除第一个cookie并为该广告创建相应的cookie。希望到目前为止这是有意义的

我已经编写了一个函数来查找这些cookie并显示相应的内容,但只有第一个可以工作。正在为两种广告场景设置cookie,但如果存在PPC cookie,则不会删除adroll cookie。如果存在adroll,则删除PPC cookie。我哪里出错了?下面是脚本标记中的所有代码。此外,供参考的网站使用jQuery 1.3.2,没有升级的机会

$(document).ready(function() {
    if ((window.location.href.indexOf("utm_source=adroll") > -1)) {
        var oneDay = 1000 * 60 * 60 * 24 * 1;
        var adRollexpire = new Date((new Date()).valueOf() + oneDay);
        document.cookie = "adroll=true;expires=" + adRollexpire.toUTCString();
    }

    if (window.location.href.indexOf("source=bing") != -1 || window.location.href.indexOf("source=google") != -1) {
        var oneDay = 1000 * 60 * 60 * 24 * 1;
        var PPCexpire = new Date((new Date()).valueOf() + oneDay);
        document.cookie = "ppc=true;expires=" + PPCexpire.toUTCString();
    }

    $(function() {
        var delete_cookie = function(name) {
            document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        };

        if (document.cookie.indexOf('adroll=true') >= 0) {
            delete_cookie('ppc=true');
            $("#adRDetails").show();
            $("#adRDetails").click(function() {
                $("#adRollDetailsBox").show();
            });
            $(".close").click(function() {
                $("#adRollDetailsBox").hide();
            });
        }
        else if (document.cookie.indexOf('ppc=true') >= 0) {
            delete_cookie('adroll=true');
            $("#ppcDetails").show();
            $("#ppcDetails").click(function() {
                $("#ppcDetailsBox").show();
            });

            $(".close").click(function() {
                $("#ppcDetailsBox").hide();
            });
        }

        else {
            $("#gwp-banner").show();
            $("#cuisinetowelDetails").click(function() {
                $("#cuisinetoweldetailsBox").show();
            });
            $("#cuisinetowelclose").click(function() {
                $("#cuisinetoweldetailsBox").hide();
            });
        }

    });
});

如果有人有其他方法来实现这个目标,我也愿意接受其他方法。谢谢大家!

如果设置了PPC cookie,然后用户通过adroll进入,看起来您要做的第一件事就是创建adroll cookie-然后检查哪些cookie在那里(自然会发现两者都在那里)。

当设置了所需的cookie时,重写代码以删除不需要的cookie解决了以下问题:

        $(document).ready(function(){
        if ((window.location.href.indexOf("utm_source=adroll") > -1)){
        var oneDay = 1000*60*60*24*1;
        var adRollexpire = new Date((new Date()).valueOf() + oneDay);
        document.cookie = "adroll=true;expires=" + adRollexpire.toUTCString();
        document.cookie ='ppc=true; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }

        if (window.location.href.indexOf("source=bing") != -1 || window.location.href.indexOf("source=google") != -1){
        var oneDay = 1000*60*60*24*1;
        var ppcexpire = new Date((new Date()).valueOf() + oneDay);
        document.cookie = "ppc=true;expires=" + ppcexpire.toUTCString();
        document.cookie ='adroll=true; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }

        $(function(){
        if (document.cookie.indexOf('adroll=true') >= 0){
        $("#adRDetails").show();
        $("#adRDetails").click(function() {
        $("#adRollDetailsBox").show();
        });
        $(".close").click(function() {
        $("#adRollDetailsBox").hide();
        });         
        }

        else if (document.cookie.indexOf('ppc=true') >= 0){
        $("#ppcDetails").show();
        $("#ppcDetails").click(function() {
        $("#ppcDetailsBox").show();
        });
        $(".close").click(function() {
        $("#ppcDetailsBox").hide();
        });         
        }

        else {  
        $("#gwp-banner").show();
        $("#cuisinetowelDetails").click(function() {
        $("#cuisinetoweldetailsBox").show();
        });
        $("#cuisinetowelclose").click(function() {
            $("#cuisinetoweldetailsBox").hide();
        });     
        }   
});
        });

我只是想知道为什么PPCexpire会突出显示,而adRollexpire没有突出显示,但我看不出这与问题有什么关系。是的,我没有注意到!奇怪的caps?@Igle我认为编辑器假定前导大写字母表示类名。感谢您指出这一点-我重写了逻辑,在设置所需的cookie时删除了不需要的cookie,而不是在第二个函数中的事实之后。