Hellobar是电子邮件收集器。它显示了一个弹出窗口,用户可以在其中输入其电子邮件以加入电子邮件列表。 JS代码是从第3方hellobar域加载的。
过去,我们可以通过PHP代码(例如“ DontShowHB”)设置某个魔术性cookie,如果找到了该cookie,则不会弹出窗口。此方法已不存在。这使我们可以为服务器可以识别的某些访客禁用hellobar。
if (certain situation met) then
set disable hellobar cookie => hellobar would not show
else
show the hellobar
所以我的问题是:如果我们想再次通过代码禁用hellobar。我们该怎么做?
(我们可以通过JS销毁hellobar对象,还是可以设置某个变量来禁用hellobar?长而短的是:我们该如何创建hellobar不会被触发并保持沉默的情况)>
这是Hellobar代码脚本(很抱歉,默认情况下它已被最小化):https://my.hellobar.com/modules-v26.js
这是调用此脚本的JS代码
window.hellobarSiteSettings = window.hellobarSiteSettings || {
"preview_is_active": false,
"capabilities": {
"autofills": false,
"geolocation_injection": false,
"external_tracking": false
},
"site_id": 123,
"site_url": "https://example.com",
"pro_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"site_timezone": "+01:00",
"hellobar_container_css": "#CODE REMOVED FOR EASY READING#"
};
var bootstrap = function(t) {
var e = document,
a = e.head || e.getElementsByTagName("head")[0];
script = e.createElement("script"), script.async = 1, script.src = t, a.appendChild(script)
};
bootstrap("https://my.hellobar.com/modules-v26.js");
感谢帮助
答案 0 :(得分:0)
我已解决以下问题,并将此代码添加到页脚中。
因为我们运行一个多站点,所以我们需要HB代码数组。查找代码。查找cookie。
如果:都找到了,然后通过JS代码加载Hellobar Javascript
其他:不要
提示!检查放置它的模板代码的缓存
<?php
/** CUSTOM CODE - HELLOBAR **/
$hellobardomains = array(
"example.com" => "CODEHERE",
);
$_hellobarcode = $hellobardomains[$_SERVER['HTTP_HOST']];
/* Logic here on server side PHP to set Cookie "HBDismissed" to true */
?>
/* Logic here on client side JS to set Cookie "HBDismissed" to true */
var HBCode = "<?php echo $_hellobarcode; echo $_domain;?>";
var HBLoad = (YourFunctiontoGetCookies.get("HBDismissed") == null);
if (HBCode.length > 0 && HBLoad) {
t = "//my.hellobar.com/"+HBCode+".js";
var e = document, a = e.head || e.getElementsByTagName("head")[0];
script = e.createElement("script"), script.async = 1, script.src = t, a.appendChild(script)
};
NB。如果Hellobar小组阅读了此内容。
GUI中的cookie过滤器功能可读取此cookie
我们可以将JS模块所遵循的全局变量设置为true / false