Интересный способ заставить пользователей выключить Adblock

Обнаружен на сайте https://www.kp.ru/, в целом похож на этот способ обнаружения Adblock.

Способ обхода Adblock

Краткая суть: считаем, что AdBlock включен, пытаемся загрузить JavaScript, похожий на рекламу /js/adriver.js, если есть AdBlock, он его блокирует. А файл /js/adriver.js содержит всего одну инструкцию: window.noAdBlock = true;, которая отменяет утверждение, что Adblock есть.

index.html
<script>
window.noAdBlock = false;
</script>
<script src="/js/adriver.js"></script>
<script async="async" type="text/javascript" src="/js/module/myFrame.min.js"></script>
/js/module/myFrame.min.js
utils.isBlockedAd = function() {
  var i = document.getElementById("popapIsBlockedAd");
  if (i) {
    var s = function() {
      i.innerHTML = '<div class="container"><div class="leftColl"><span class="close">x</span><div class="wrap"><div class="titleBlockedAd">Здравствуйте!</div>' +
			'<div class="txt"><p>Мы заметили, что вы используете блокировщик рекламы.</p><p>Очень просим отключить его для ' +
			'<span style="text-transform: uppercase;">' + window.location.hostname + '</span>!</p><p>Реклама - основной источник дохода для нас. ' +
			'Без нее мы не сможем оплатить работу журналистов и их командировки.</p><p class="bold">Не лишайте себя хороших материалов!</p>' +
			'</div></div></div><div class="rightColl"><div class="wrap"><div class="nav kpNav"><span class="active" data-slide-active="slide-1">' +
			'AdBlock</span><span data-slide-active="slide-2">AdBlock Plus</span><span data-slide-active="slide-3">uBlock</span></div>' +
			'<div class="slideGallery"><div class="slide" id="oneSlide"><div class="title">Инструкция:</div><ol><li>Нажмите на значок Adblock' +
			' рядом с адресной строкой</li><li>Выберите пункт «Не запускать на страницах этого домена» </li></ol></div>' +
			'<div class="slide" id="twoSlide"><div class="title">Инструкция:</div><ol><li>Нажмите на значок Adblock рядом с адресной строкой</li>' +
			'<li>Нажмите на опцию «Включен на этом сайте»</li></ol></div><div class="slide" id="threeSlide"><div class="title">Инструкция:' +
			'</div><ol><li>Нажмите на значок uBlock рядом с адресной строкой</li><li>Нажмите на большую синюю кнопку «Выключить»</li></ol>' +
			'</div></div></div></div></div><span class="shadow shadowClose close"></span>'
    };
    $(document).find("#popapIsBlockedAd").each(function() {
      function i() {
        d.removeClass("active")
      }
 
      function l() {
        var i = $(this).attr("data-slide-active");
        v.removeClass("active"), $(this).addClass("active"), c.removeClass("slide-1"), c.removeClass("slide-2"), c.removeClass("slide-3"), c.addClass(i)
      }
      var a = !1,
        d = $(this),
        e = get_cookie("popapAdShow"),
        o = location.hostname.split(".").reverse();
      if (o = "." + o[1] + "." + o[0], "yes" !== e) {
        s();
        var t = $(this).find(".close");
        setTimeout(function() {
          a = !a, a ? (d.addClass("active"), window.dataLayer && window.dataLayer.push({
            event: "popadshow"
          }), set_cookie("popapAdShow", "yes", {
            domain: o,
            path: "/",
            expires: 1800
          })) : d.removeClass("active")
        }, 1e4), t.click(i);
        var c = $(this).find(".slideGallery"),
          v = $(this).find("[data-slide-active]");
        v.click(l)
      }
    })
  }
}, $(document).ready(function() {
  noAdBlock || utils.isBlockedAd()
});
Печать/экспорт