Pull to refresh

Comments 25

Скажите, что в первом примере помешает заблокировать div#bannerContainer?
UFO just landed and posted this here
Нет, вы не совсем поняли. Случайный id генерируется, но он тут не при чем. В строке document.getElementById(attach).appendChild(div); происходит добавление div со случайным id ребенком к div#bannerContainer. Блокируем div#bannerContainer и проблем нет.

Более того, я попробовал код автора в jsfiddle — не знаю, что там должен был гениального сделать этот сниппет, но у меня в фуррифоксе всё заблокировалось, как и полагается. Выключил Adblock — видно баннер, включил — не видно. Не знаю, что там должно было быть.
Если обозвать див по другому, то всё, пиши пропало. Адблок не найдёт его. И это вообще для примера.
Переименовал div в 0oc0RsZBiNW1gN3yYShXOQ — удивительным образом AdBlock Plus всё равно его заблокировал. Я, конечно, допускаю, что произошло совпадение, и в базе ABP есть такой айдишник, но FZQl7VXyFnBw4hVpf9lL8A и qYfDgVjfa0xL1a7lgwPVVA тоже заблокировались. Но стоит отключить ABP и обновить страницу — и баннер тут как тут. Как так получается? :)
Понял в чём дело, адблок ищет в названии файла: 468x60, как только найдёт — сразу вырежет =/
Вот пример, где баннер не блокируется.
А он не блокируется. Сам проверял.
Мне кажется, у вас по какой-то причине не работает AdBlock вообще. Вот, смотрите — этот кусок кода каждые 500 мс уничтожает старый баннер и добавляет новый, случайным образом показывая либо настоящую рекламу, которая находится в черном списке AdBlock, или же логотип настоящего хабрахабра. Все делается честно — реклама вставляется после загрузки страницы, со случайным id, с единственным родительским элементом — <body>, комар носа не подточит. По вашим словам, AdBlock должен был бы ее пропустить — но он блокирует баннер, пропуская при этом хабралого. Если заменить div на img, ничего не поменяется, на самом деле — блокируется сама картинка, а что именно ее грузит, когда, какой id у этого элемента — AdBlock не волнует на самом деле.

Так что проверьте, работает ли у вас AdBlock в принципе — что-то подсказывает мне, что нет.
Если я хоть раз зайду на сайт, который «вешает» мой блокировщик рекламы, то больше я на него заходить никогда не буду.
На чем работают сайты? Сервера, движки, — это все конечное, а первостепенное — это деньги.
Деньги бывают:
  • с рекламы
  • с дотаций
  • из кошелька

Собственно и все. Без денег нечем платить за сервер, без денег нету любимого сайта. Если выручки с дотаций мало, то источником будет реклама.
Первостепенное у сайтов — посетители.
«Цветы жене, а детям мороженое», только и то и то надо купить, чтобы подарить.
Сайт предоставляет посетителям некую «услугу», за которую получает прибыль в виде доната или денег с рекламы или пользователи платят абонентку или пенни при регистрации.
Лояльный пользователь отключит блокировку рекламы на сайте, который пользователю интересен, если тот его попросит (например через оповещение).
Нелояльный или принципиальный — от такого пользователи нету толку, кроме как лишний плюс в счетчике.
Если ресурс живет на дотации — реклама не нужна.
Если ресурс НЕ живет на дотации — реклама необходима.
В противном случае будьте готовы тратить некий % от заработанных на работе денег на оплату серверов и персонала (если проект масштабный).
Лишнего плюса в счётчике тоже не будет, за этим следит Ghostery.
Побуду антипопулистом…
Если сайты живут за счет рекламы, было бы справедливым просто не пускать юзеров с задедекченными блокерами или же предлагать внести сумму для возможности посещения сайта.
Всем хорошо — кто не хочет смотреть рекламу, не смотрит ее. Кто не хочет обслуживать бессмысленный траффик, не обслуживает :)
Возьмет на вооружение хабр, гугл и ютуб, и проблемы не будет.
Если юзеров не будут пускать, то они будут ходить на тот сайт, куда их пускают. Кому от этой стратегии хуже?)
Я не против рекламы. Но баннеры не должны быть анимированными, не должны быть озвученными, их не должно быть в поле зрения больше одного. Когда страница мигает баннерами как новогодняя елка, не остается другого выбора, кроме как резать рекламу всеми доступными способами. Даже на планшете пришлось поставить firefox и ходить в и-нет с помощью него — исключительно ради возможности использовать AdBlock.
Можно еще в файл hosts внести адреса рекламных сетей, на 4pda можно найти довольно большие готовые. Правда нужно иметь рутовые права на устройстве (вроде бы). Есть приложения, которые уже сами это делают, например, AdAway.
А еще надоедает из кучи кнопок «Download» вычленять одну ту самую — настоящую.
> при помощи JavaScript

Ха. А noscript при помощи чего будем блокировать?
С ним и так 99% сайтов нормально не работают.
Например, при помощи
body { display: none; }

document.body.style.display = '';


Ну это если сильно неймётся.
Ну тогда ctrl-W спасет…
Неужели действительно человек решит купить товар, потому что ему насильно впихивают и суют под глаза рекламу, вешают его браузер или расширение и раздражают и бесят всяческими другими способами? Думаю, скорее он закроет этот сайт и никогда больше не откроет, а об рекламируемом продукте отложится впечатление «бесящее г*вно»
Автор, если отставить в сторону морально-этическую сторону вопроса запрета блокировки рекламы — скажите, пожалуйста, зачем вы пишете такой, прошу прощения за прямоту, говнокод? Например, конструкция:
var var1 = $('foobar');
if (var1) {
    var1.remove();
}
В условии нет ни малейшего смысла, jQuery всегда возвращает объект, который является truthy. Более того, в JavaScript в принципе нет возможности сделать пользовательский объект, который будет falsy. Поэтому нужно было писать просто $('foobar').remove();

Второе — что за create = false;? В чем прелесть не использовать return? Более того, почему сообщения об ошибках вываливаются alert-ами, а не throw new Error('все печаль');?
Я бы подвесил такое на сайт конкурента. Себе — нет.
Sign up to leave a comment.

Articles