如何通过JS代码禁用Hellobar?

时间:2018-09-24 16:29:41

标签: javascript jquery

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");

感谢帮助

1 个答案:

答案 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小组阅读了此内容。

  1. GUI中的cookie过滤器功能可读取此cookie

  2. 我们可以将JS模块所遵循的全局变量设置为true / false