我有一个 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;';
这个问题对我来说不起作用。我已经在隐身模式下完成了所有测试,并且只能让弹出窗口工作一次。
最佳答案
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;';
});
});
关于javascript - 删除 Mailchimp 弹出窗口的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994951/