【问题标题】:Delete cookie for Mailchimp Popup删除 Mailchimp 弹出窗口的 cookie
【发布时间】:2018-04-10 05:37:38
【问题描述】:

我有一个 wordpress 网站,您在其中单击一个 div,然后会弹出一个 mailchimp 弹出表单。一个问题是,mailchimp 存储一个 cookie 以确保弹出窗口只执行一次。但由于我现在是点击一下,我想摆脱那个 cookie。

这是我的代码:

var mailchimpConfig = {
        baseUrl: 'mc.us17.list-manage.com',
        uuid: '1356322e2......rest of my code',
        lid: '36776d...rest of my code'
    };

    // No edits below this line are required
    var chimpPopupLoader = document.createElement("script");
    chimpPopupLoader.src = '//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js';
    chimpPopupLoader.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');

    var chimpPopup = document.createElement("script");
    chimpPopup.appendChild(document.createTextNode('require(["mojo/signup-forms/Loader"], function (L) { L.start({"baseUrl": "' +  mailchimpConfig.baseUrl + '", "uuid": "' + mailchimpConfig.uuid + '", "lid": "' + mailchimpConfig.lid + '"})});'));

    jQuery(function ($) {
        document.body.appendChild(chimpPopupLoader);

        jQuery(".coming-soon").on("click", function () {
            alert("Hello");
            document.body.appendChild(chimpPopup);
            document.cookie = 'MCEvilPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
        });

    });

于是上网一搜,发现大家都是用这段代码来删除cookie的。

document.cookie = 'MCEvilPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';

这个问题是,它不适合我。我已经在隐身模式下完成了所有测试,只能让弹出窗口工作一次。

【问题讨论】:

    标签: javascript jquery cookies popup mailchimp


    【解决方案1】:

    cookie 的名称是 MCPopupClosed 而不是 MCEvilPopupClosed。我不知道为什么,但 MailChimp 一定在某个时候改变了它。

    还有另一个名为 MCPopupSubscribed 的 cookie,如果用户订阅而不是使用“X”按钮关闭弹出窗口,则会设置该 cookie。如果您希望即使用户已订阅也显示弹出窗口,您还需要清除该 cookie。

    不过,清除这两个 cookie 只会使其在页面加载后工作一次。我在调查这个问题时遇到了this code,如果您将require 放在点击函数而不是脚本标签中,它工作正常。这样做还可以避免每次单击元素时都必须删除 appendChild 函数生成的脚本标签。

    所以你更新后的代码如下所示:

    var mailchimpConfig = {
            baseUrl: 'mc.us17.list-manage.com',
            uuid: '1356322e2......rest of my code',
            lid: '36776d...rest of my code'
        };
    
    // No edits below this line are required
    var chimpPopupLoader = document.createElement("script");
    chimpPopupLoader.src = '//s3.amazonaws.com/downloads.mailchimp.com/js/signup-forms/popup/embed.js';
    chimpPopupLoader.setAttribute('data-dojo-config', 'usePlainJson: true, isDebug: false');
    
    jQuery(function ($) {
        document.body.appendChild(chimpPopupLoader);
    
        jQuery(".coming-soon").on("click", function () {
            require(["mojo/signup-forms/Loader"], function (L) { L.start({"baseUrl": mailchimpConfig.baseUrl, "uuid": mailchimpConfig.uuid, "lid": mailchimpConfig.lid})});
            document.cookie = 'MCPopupClosed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
            document.cookie = 'MCPopupSubscribed=;path=/;expires=Thu, 01 Jan 1970 00:00:00 UTC;';
        });
    
    });
    

    【讨论】:

    【解决方案2】:

    你错过了一个 cookie:

    document.cookie = "MCEvilPopupClosed=; expires=Thu, 1970 年 1 月 1 日 00:00:00 UTC";

    我刚刚纠正了完全相同的问题。

    希望这会有所帮助, P.

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 2012-07-13
      • 2011-08-10
      • 2016-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多